首先分析知乎登入頁,一般模擬登入走的都是手機頁,比較方便
分析登入過程
為了得到驗證碼我特意都輸錯了幾次密碼,知乎的登入不一定有驗證碼,所以我們在**實現的過程中需要做判斷是否需要驗證碼
引入依賴:
構建全域性請求頭
因為要模擬手機,所以這裡我們用的是手機的user-agent
登入過程
def login(code=0):
login_data = configparser.configparser()
login_data.read("user.ini") #將使用者名稱密碼放在user.ini配置檔案
username = login_data.get("logininfo", "email")
password = login_data.get("logininfo", "password")
url = 'signin'
login_url = 'login/email'
captcha_url = 'captcha.gif'
req = request.request(url)
res = request.urlopen(req)
html = res.read().decode('utf-8')
soup = beautifulsoup(html)
inputs = soup.find_all('input')
_xsrf = inputs[0]['value']
# 構造登入引數
captcha = input("請輸入驗證碼:\n")
params['captcha'] = captcha
params = parse.urlencode(params).encode('utf-8')
req = request.request(login_url,params,method="post")
res = request.urlopen(req)
result = res.read().decode('utf-8')
login_result = json.loads(result)
if login_result['r'] == 0:
print('登陸成功')
else:
if login_result['errcode'] == 1991829:
login(1)
else:
print(login_result['msg'])
login()
最後if __name__ == '__main__':
build_opener()
login()
例項效果
zhihu.gif
python 爬蟲 登入知乎
pytho3.4 requests.get request.post requests.session 1 通過瀏覽器f12開發者工具,找到登入時提交的表單以及請求的url 注意請求的url不是瀏覽器網域名稱框的url 因為知乎改了,現在不需要驗證碼了,所以中少了驗證碼的引數,不過 裡是有的 2 設...
Scrapy 登入知乎
需要先建立乙個scrapy專案,然後建立乙個testspider 按照需要修改items 然後開始修改testspider的內容,中都有注釋,不作贅述 coding utf 8 import scrapy import os import time mode 1 tencent 2 free mod...
Beautiful Soup使用,登入知乎
beautiful soup提供一些簡單的 python式的函式用來處理導航 搜尋 修改分析樹等功能。它是乙個工具箱,通過解析文件為使用者提供需要抓取的資料,因為簡單,所以不需要多少 就可以寫出乙個完整的應用程式。beautiful soup自動將輸入文件轉換為unicode編碼,輸出文件轉換為ut...