Python爬取今日頭條JS內(nèi)容

參考網(wǎng)站:http://blog.csdn.net/u011475134/article/details/70198533

目標(biāo):爬取熱點新聞的標(biāo)題,鏈接(圖1)

圖1---- 爬取目標(biāo)

核心技術(shù):所爬內(nèi)容為JS加載,需要從網(wǎng)頁響應(yīng)中找到JS腳本返回的JSON數(shù)據(jù)

(1)找到JS請求的數(shù)據(jù)接口

1.打開網(wǎng)頁調(diào)試工具

網(wǎng)頁調(diào)試工具

2.發(fā)現(xiàn)所需要的數(shù)據(jù)在文件名含“?category“字段的文件中,篩選,只顯示該種文件

(2)觀察數(shù)據(jù)源文件的url構(gòu)成規(guī)律

滾動滾動條,出現(xiàn)了幾個新的目標(biāo)文件。列表觀察

四個目標(biāo)文件的url
提取各參數(shù),黃色部分是會改變的參數(shù)

觀察上表得出,url地址中只有黃色部分的參數(shù)會改變。

①max_behot_time和max_behot_time_tmp的值相等

②點擊首頁中左邊標(biāo)題欄“熱點”按鈕時,max_behot_time和max_behot_time_tmp的值為0

③而每一個max_behot_time和max_behot_time_tmp的值都可以在上一個文件內(nèi)容中得出

max_behot_time和max_behot_time_tmp的值

④AS和CP的值,每一次都發(fā)生改變,并沒有規(guī)律。因此推測是根據(jù)一定加密算法算出的。參考的指出可以在網(wǎng)頁HTML源碼中找到加密算法。但是我并沒有找到.....所以加密算法是直接使用參考網(wǎng)站所提供的函數(shù):

計算AS和CP的算法

(3)編寫代碼:

由于看不懂參考網(wǎng)站的代碼,自己寫了個簡單版的......


(4)測試

結(jié)果:每一次爬取的內(nèi)容都是一樣的


1.猜測A:網(wǎng)站自帶反爬機(jī)制,需要降低爬取速度

實施:在get_item(url)中添加time.sleep(5)

結(jié)果:失敗

2.猜測B:網(wǎng)站自帶反爬機(jī)制,需要加header

實施:在get_item(url)中添加

結(jié)果:失敗

3.猜測C:網(wǎng)站自帶反爬機(jī)制,需要加cookies

實施:根據(jù)參考網(wǎng)站,只與cookies中的tt_webid參數(shù)有關(guān)

結(jié)果:成功


完整代碼:"https://github.com/caiyingyi/toutiao.git"

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,159評論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,276評論 6 342
  • 舊愿今行意更濃 --我對大學(xué)生活的一點點感悟 我愛你,東秦 一盞燈, 一片昏黃; 一簡書, 一杯淡茶。 守著那一份...
    大頭閨女閱讀 770評論 0 0
  • [cp]事情是這樣的 昨天晚上,妹妹發(fā)了一條朋友圈 讓大家記得給她在愚人節(jié)發(fā)紅包 我就給她評論“記得給我塞錢” 然...
    就是愛吃糖閱讀 326評論 0 1

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