首先在火狐瀏覽器上登錄知乎,然后使用火狐瀏覽器插件 Httpfox 獲取 GET 請求的Cookie,這里注意使用狀態(tài)值為 200(獲取成功)的某次GET.
將 Cookies 復(fù)制出來,注意這一行非常長,不要人為添加換行符。而且 Cookie 中使用了雙引號,最后復(fù)制到代碼里使用單引號包起來。
使用下邊代碼檢驗是否是模擬了登錄的用戶的請求:
1
2
3
4
5
6
7
8
9
|
import requests import re headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0' , 'Cookie' : 'q_c1=034d8149e54a425496b7dd78be571390|1496424997000|1496424997000; r_cap_id="ZDE4MTg2NGFhMjdlNDlhMTllZWFlMmJmNjkzN2MyMzI=|1496487358|d6df41ad90d6d1a94bcbd27f2962fea69d2ec1b6"; cap_id="OTc1NmViYzJlNDZjNDVlY2E1YTZiNTZjNTFkMjZkNDY=|1496487358|52ac19a9e05ee48e155d2b4d57d414792873c062"; d_c0="AEACLgSM2guPTmR8y-3r_XCeIy3RVmMIrQ0=|1496424997"; __utma=51854390.870770348.1496424950.1496483801.1496485796.4; __utmz=51854390.1496485796.4.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmv=51854390.100--|2=registration_date=20141101=1^3=entry_date=20141101=1; _zap=5b305d08-cca7-4182-b1a8-1d8190e94a3b; aliyungf_tc=AQAAAFdv8y0T4AMAj5NK3+HVvqiouPgb; acw_tc=AQAAAHPUpVJ7LQQAj5NK35xm3ILOPUBu; _xsrf=85bb3aa751345649abdd275cb42ed704; __utmc=51854390; capsion_ticket="2|1:0|10:1496486629|14:capsion_ticket|44:ODJkNDE0MDQ1MjNmNDYwZTlhZGViZWNhNWNlZDI4Y2E=|6ded3f3e82c25526f236a4bd135705bb334e25d8df96750d89afa5ae4ab49a04"; __utmb=51854390.8.10.1496485796; __utmt=1; z_c0=Mi4wQUFCQVJBVV9BQUFBUUFJdUJJemFDeGNBQUFCaEFsVk56U0phV1FCdTNCeVduZVZ3X0hweWxnWTRIeTZmMmtyUEFn|1496487376|d6107bbdbb3ccd015757953a40ee1ecedae6834c' } r = requests.get( "https://www.zhihu.com/question/20273782" , headers = headers) text = r.text re. compile (r "加入知乎" ).search(text) |
如果是登錄的用戶,響應(yīng)的內(nèi)容中包含用戶名。沒用登錄的話,響應(yīng)的內(nèi)容中包含 “登錄”,“加入知乎” ,可以據(jù)此來判斷。
Cookie 每次登錄的值都不一樣,退出之后再登錄需要重新采集。
以上這篇python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/zhouguoqionghai/article/details/72853854