利用python的自動(dòng)化測(cè)試庫(kù)selenium來爬取頭條新聞

? ? ?昨天看了頭條的新聞,然后決定想去爬取頭條的新聞,但是經(jīng)過一輪分析之后發(fā)現(xiàn)頭條新聞推送的方式是用ajax封裝滾動(dòng)刷新的,而不是傳統(tǒng)的一頁一頁的翻頁瀏覽的,于是這個(gè)不用想了,肯定是不能從傳統(tǒng)的方式直接向服務(wù)器請(qǐng)求來獲得網(wǎng)頁真實(shí)內(nèi)容。分析后發(fā)現(xiàn),新聞的推送方式是以一個(gè)叫“?category=...”的xhr文件更新內(nèi)容的,客戶不斷地滾動(dòng)獲得新的推送內(nèi)容,在這過程中,其實(shí)是不斷地向服務(wù)器的數(shù)據(jù)庫(kù)發(fā)出請(qǐng)求,產(chǎn)生一個(gè)個(gè)的“?category=...”的xhr文件,在這些xhr文件中能夠得到網(wǎng)頁的請(qǐng)求url和網(wǎng)頁具體內(nèi)容的json文檔。

? ? 我一開始列舉了好幾個(gè)“?category=...”的xhr文件的url去找規(guī)律,其中我發(fā)現(xiàn)url中有以下參數(shù)是不同的,其他都一致:“max_behot_time”“max_behot_time_tmp” 分別是請(qǐng)求的當(dāng)時(shí)時(shí)間時(shí)間戳,as和cp參數(shù)在一個(gè)叫home_4abea46.js 的js文件中能夠找到相應(yīng)的處理函數(shù),經(jīng)過一番地分析后,我將其移植到python中實(shí)現(xiàn)。


as和cp的原生實(shí)現(xiàn)
移植到python中的實(shí)現(xiàn)

? ?到這一步之后,我欣喜若狂,以為就快大功告成了,結(jié)果發(fā)現(xiàn)后面還有一個(gè)最最關(guān)鍵的參數(shù)_signature,而且的這個(gè)參數(shù)是的破解我無從下手,我到網(wǎng)上看看有沒有大神找到破解方法,結(jié)果發(fā)現(xiàn)似乎沒有什么好的破解方法。后來我還是被迫使用了python的必殺技,自動(dòng)化測(cè)試庫(kù)selenium。具體實(shí)現(xiàn)代碼如下:


測(cè)試代碼試爬效果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容