Scrapy 模擬登錄某乎

最近看知乎的帖子太累了,所有想直接用爬蟲爬取以后存入數(shù)據(jù)庫再看棘脐。

廢話不多說直接行動吧

點擊www.zhihu.com發(fā)現(xiàn)會直接跳轉到登入頁面

也就是沒有登入的情況系知乎是不允許我們?yōu)g覽主頁的內容的

那我們先去看看登入頁面有什么必須要填的選項吧

打開chrome瀏覽器的調試模式

然后我們故意輸入一個錯誤的賬號和密碼雀久,看看會發(fā)送一些什么請求


看到飄紅的sign_in以后發(fā)現(xiàn)賬號和密碼是需要發(fā)送給他的

打開地址看看

需要發(fā)送的地址是https://www.zhihu.com/api/v3/oauth/sign_in,是以post的方式發(fā)送的

我看看他發(fā)送的內容是什么

果然又是加密的數(shù)據(jù)

既然這樣我們就在chrome里面查找一下,看看他到底請求了多少數(shù)據(jù)吧

打開全局搜索

看看sign_in到底在哪里


找到了數(shù)據(jù)剂桥,我們打個斷點看看,需要發(fā)送的數(shù)據(jù)有哪些


開始嘗試發(fā)送數(shù)據(jù)百姓,然后打上斷點

現(xiàn)在我們知道他需要的數(shù)據(jù)有哪些了

這里是login_data的內容

captcha:?這個是驗證碼

clientId:?"c3cef7c66a1843f8b3a9e6a1e3160e20"渊额,這個是唯一id號

grantType:?"password",這個是登入類型垒拢,如果是賬戶密碼輸入的就是這個

lang:?"en"旬迹,這個是驗證碼類型,是英文的驗證碼還是中文驗證碼

password:?"12345678"求类,這個是密碼

refSource:?"other_https://www.zhihu.com/signin?next=%2F"奔垦,這個是將要跳轉到哪個頁面

signature:?"ea67db2a6063ea6482d27368aab27a363e276a18",這個是一個加密字符串

source:?"com.zhihu.web"尸疆,這個是服務器地址

timestamp:?1591009623259椿猎,這個是時間戳

username:?"+86123456789"惶岭,這個是手機號碼

utmSource:?undefined,這個暫時不知道



我們全局搜索下犯眠,看看他用的什么加密方式

是通過 Hmac 算法,然后對clientId按灶,grantType,timestamp筐咧,source這四個進行加密

那我們就來寫代碼來模擬這個加密過程

這個是瀏覽器加密出來的鸯旁,我們模擬下加密看看是不是數(shù)據(jù)一樣

signature:?"ea67db2a6063ea6482d27368aab27a363e276a18",這個是一個加密字符串


看來是一致的量蕊,證明加密方式?jīng)]有錯铺罢。

然后我們需要模擬發(fā)送驗證碼請求

https://www.zhihu.com/api/v3/oauth/captcha?lang=en


然后我們把驗證碼數(shù)據(jù)通過post方式提交到

https://www.zhihu.com/api/v3/oauth/captcha?lang=en里面

然后我們需要把驗證碼以及賬號密碼更新到login_data里面

再把時間戳,請求的驗證碼残炮,以及加密以后的signature也更新到login_data


然后我們需要在請求頭里面攜帶上x-xsrftoken的參數(shù)

headers.update({

'content-type':'application/x-www-form-urlencoded',

? ? 'x-zse-83':'3_2.0',

? ? 'x-xsrftoken':self._get_xsrf()

})

這個參數(shù)是在我們訪問頁面的時候自動會寫入到headers里面的韭赘,我們只要提取出來就好了



然后我們需要把數(shù)據(jù)集合起來然后發(fā)送到

https://www.zhihu.com/api/v3/oauth/sign_in里面進行登入認證

我們先看看瀏覽器上面攜帶了哪些信息

瀏覽器上加密了

我們要找到他加密的方式

我們搜索_encrypt發(fā)現(xiàn)了他是用這個加密的,我們把這段JavaScript復制下來放入到js

我們是用的是node環(huán)境來運行js

但是在node環(huán)境里面是沒有atob這個函數(shù)的势就,所以我們使用Buffer.from來進行

然后我們使用execjs這個包把需要加密的參數(shù)放入到里面去


然后執(zhí)行就可以得到加密的參數(shù)了

然后我們使用scrapy這個框架來進行發(fā)送POST數(shù)據(jù)


然后測試一下

我們測試一下知乎的熱榜這個欄目

https://www.zhihu.com/hot

這個欄目我們在沒有登入的情況下泉瞻,輸入看看

可以看到知乎是不讓我們訪問的,必須登入

那我們利用爬蟲模擬用戶登入后再去訪問試試

賬戶密碼我已經(jīng)填寫好啦蛋勺,肯定不會讓你們看到的瓦灶。,我們先填寫一下驗證碼

我們看看html給我們返回的數(shù)據(jù)


再看看網(wǎng)頁里面的數(shù)據(jù)


我們成功的獲取到了知乎的熱點內容抱完,接下來我們只要訪問這些頁面贼陶,把所有用戶的回答全部保存到我們的數(shù)據(jù)庫就可以了

至于寫入數(shù)據(jù)庫這個,因為我沒什么需要爬取的知乎數(shù)據(jù)所以我就不寫入到數(shù)據(jù)庫了巧娱。

具體的源碼的話碉怔,如果有需要我會分享的。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末禁添,一起剝皮案震驚了整個濱河市撮胧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌老翘,老刑警劉巖芹啥,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铺峭,居然都是意外死亡墓怀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門卫键,熙熙樓的掌柜王于貴愁眉苦臉地迎上來傀履,“玉大人,你說我怎么就攤上這事莉炉〉稣耍” “怎么了碴犬?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梆暮。 經(jīng)常有香客問我服协,道長,這世上最難降的妖魔是什么啦粹? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任蚯涮,我火速辦了婚禮,結果婚禮上卖陵,老公的妹妹穿的比我還像新娘。我一直安慰自己张峰,他們只是感情好泪蔫,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喘批,像睡著了一般撩荣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饶深,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天餐曹,我揣著相機與錄音,去河邊找鬼敌厘。 笑死台猴,一個胖子當著我的面吹牛,可吹牛的內容都是我干的俱两。 我是一名探鬼主播饱狂,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宪彩!你這毒婦竟也來了休讳?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尿孔,失蹤者是張志新(化名)和其女友劉穎俊柔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體活合,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雏婶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芜辕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尚骄。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侵续,靈堂內的尸體忽然破棺而出倔丈,到底是詐尸還是另有隱情憨闰,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布需五,位于F島的核電站鹉动,受9級特大地震影響,放射性物質發(fā)生泄漏宏邮。R本人自食惡果不足惜泽示,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜜氨。 院中可真熱鬧械筛,春花似錦、人聲如沸飒炎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郎汪。三九已至赤赊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煞赢,已是汗流浹背抛计。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留照筑,地道東北人吹截。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像朦肘,于是被迫代替她去往敵國和親饭弓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354