摘要:繼續(xù)嘗試,成功,但是還是未登錄狀態(tài)。如前所說,用模擬登錄拿到,然后帶上去取文章備份就好了,用加了點并發(fā),代碼放到上了,地址,歡迎使用及拍磚以上
直接post登錄失敗
一般的網(wǎng)站確實直接post之后就登錄成功了,然后拿到cookie想怎么玩就怎么玩。不過的確世事難料,失敗在所難免。
首先是人肉登錄,用chrome的network欄查看post了些什么東西,有三項:
password
remember
地址是http://segmentfault.com/api/user/login?_=0b1bc2ca95203748b804e69ac2cfab06,后面那個32位的token是隨機(jī)的,每次都不一樣。怎么找到這個值呢?用chrome工具欄進(jìn)行調(diào)試打斷點找(記得先按"{}"格式化代碼),從發(fā)XHR的地方開始,用call stack逐步縮小范圍,直到找到token被加上的地方,值也就能找到了。這個過程還是很麻煩的。。。
最終能找到這個值為window.SF.token,你百度一下它會發(fā)現(xiàn)segmentfault上已經(jīng)有文章寫過用node模擬登錄,不過在js文件里全局搜索_=這種方法略投機(jī)。我表示我完全沒有參考它,因為我找到window.SF.token去搜索后才發(fā)現(xiàn)那文章,不然直接拿來主義了
這個值附在window上,沒法js壓縮混淆,所以肯定有個賦值的地方,稍微找找,發(fā)現(xiàn)就在登錄頁的html里。
用python獲得網(wǎng)頁內(nèi)容,提取出含token的那段代碼,包括for循環(huán)中的數(shù)字,千方百計把token計算出來,拿去post,失敗。加上headers和cookies偽裝瀏覽器,注意,當(dāng)前這個cookies應(yīng)該是匿名cookie,以防萬一加上的,里面沒有有效的能標(biāo)記已經(jīng)登錄的session值。繼續(xù)嘗試post,成功,但是還是未登錄狀態(tài)。重新人肉登錄檢查發(fā)送xhr的地方,還有好幾處,稍微嘗試了一下模擬這幾個發(fā)送,沒有成功。經(jīng)過分析發(fā)現(xiàn),有效登錄標(biāo)記是一個叫sr_remember的cookie值,但具體過程我確實沒分析出來,現(xiàn)在的登錄里回調(diào)和跳轉(zhuǎn)太多了,分析過程就很麻煩,再用python模擬單個請求,很低效且不易成功
使用phantomjs那就用最簡單的方法,在python中直接模擬瀏覽器的js運(yùn)行環(huán)境,試了試Ghost.py,大坑,好像是網(wǎng)頁中有用到localStorage等的地方就直接崩潰了,而且它依賴于PySide,這個真的是非常費事,要裝的朋友切忌選擇下載源代碼編譯安裝,否則你會發(fā)現(xiàn)pip install PySide之后半天沒動靜,前者至少都能給你點動靜(編譯估計要幾十分鐘吧)。PyV8安裝沒成功,好像是Ei Capitan的問題,放棄。
最后就選擇了selenium+Phantomjs, selenium可以直接驅(qū)動phantomjs,很方便。這一瞬間我感覺自己相當(dāng)明白為什么PySpider里要用Phantomjs了。
如前所說,用phantomjs模擬登錄拿到cookie,然后python帶上cookie去取文章備份就好了,用tornado加了點并發(fā),代碼放到github上了,地址,歡迎使用及拍磚
以上
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/37681.html
摘要:上一篇用模擬請求,最后沒有拿到。對于跳轉(zhuǎn)是由網(wǎng)頁中的腳本所控制的,使用這種模擬真實瀏覽器行為,可以更容易保證其完成整個登錄行為,相對地因為模擬的成本速度會慢一些。 上一篇用requests模擬請求,最后沒有拿到cookies。今天偶爾看一篇HTTP相關(guān)的文章,發(fā)現(xiàn)在某些請求返回的header中會有set-cookie字段,很明顯之前的失敗應(yīng)該是沒有接收到包含這個字段的response。...
摘要:時間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:在這之前,還是有必要對一些概念超輕量級反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個爬取多頁面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個可以下載多頁面的爬蟲,如何將相對URL轉(zhuǎn)為絕對URL,如何限速,...
閱讀 2113·2023-04-26 01:33
閱讀 1729·2023-04-26 00:52
閱讀 1123·2021-11-18 13:14
閱讀 5862·2021-09-26 10:18
閱讀 2977·2021-09-22 15:52
閱讀 1559·2019-08-29 17:15
閱讀 3088·2019-08-29 16:11
閱讀 1089·2019-08-29 16:11