環(huán)境:python3.x
外部依賴包:requests
github項目地址
主要的問題:模擬登陸:
知乎現(xiàn)在改用https請求了扒接,數(shù)據(jù)加密敛劝,但是問題不大,重要的是網(wǎng)頁數(shù)據(jù)改動了,而且在請求時后臺會對爬蟲做一些判斷,因此在每次請求是都需要加上request header哮笆,盡可能接近瀏覽器請求的樣子来颤。
言歸正傳
登陸的數(shù)據(jù)依舊沒變動
通過chrome開發(fā)者工具可以了解到。
但是有時候需要用到驗證碼疟呐,所以脚曾,我的爬蟲直接下載驗證碼到本地,想要嘗試驗證碼自動識別的同學(xué)启具,可以移步我另一篇文章簡單驗證碼識別本讥,雖然那篇文章只講數(shù)字驗證碼的識別,但是基本思想是一樣的(不過知乎目前的驗證碼識別有點難度了)鲁冯。
_xsrf這個數(shù)據(jù)在登陸網(wǎng)頁上可以找到拷沸,雖然發(fā)生了變動,但是依然可以通過正則找出來薯演。
登陸函數(shù)大概是這樣的:
Paste_Image.png
函數(shù)初次登陸撞芍,需要賬號和密碼,之后跨扮,程序會自動記錄一個cookie文件序无,在當(dāng)前文件夾下,下次運行程序就不需要再輸入密碼和賬號了衡创,讀寫cookie文件的程序大概是這樣:
Paste_Image.png
from python_zhihu import ZhiHu
zh=ZhiHu()
//下載某個問題下的高贊答案:
zh.get_answer_text('某問題的url')
//這個方法會下載某個問題下的高贊文字答案帝嗡,存儲在一個txt文件中
//下載某個問題下所有的圖片:
zh.get_answer_img('某問題的url')
// 這個方法會下載某個問題下的答案中的所有圖片,并且按照回答人的昵稱歸類
目前更新只是保證正常的爬取知乎璃氢,后期可能會加上更多功能,敬請期待....
star,please......