1. 程式人生 > >Python爬取今日頭條段子

Python爬取今日頭條段子

找到 eat 修改 是什麽 一次 時間 地址 style 用戶名

剛入門Python爬蟲,試了下爬取今日頭條官網中的段子,網址為https://www.toutiao.com/ch/essay_joke/源碼比較簡陋,如下:

 1 import requests
 2 import json
 3 res = requests.get(https://www.toutiao.com/api/article/feed/?category=essay_joke&utm_source=toutiao&widen=1&\
max_behot_time=0&max_behot_time_tmp=0&tadrequire=true&as=A155298266FA656&cp=5926EA66D5B66E1‘
) 5 res_js = json.loads(res.text) 6 len_res_js = len(res_js[data]) 7 for mydata in res_js[data]: 8 print("用戶名:"+mydata[group][user][name]) 9 print("發表時間:"+str(mydata[group][create_time])) 10 print("發表內容:"+mydata[group][content])

通過瀏覽器相關工具發現笑話的數據存儲地址為https://www.toutiao.com/api/article/feed/?category=essay_joke&utm_source=toutiao&widen=1&max_behot_time=0&max_behot_time_tmp=0&tadrequire=true&as=A155298266FA656&cp=5926EA66D5B66E1,存儲格式是JSON格式。

但是這裏有個問題,裏面的數據只有20條,也就是說一次只能獲取20條笑話。然後我回到今日頭條段子頁面,向下拖動垂直滾動條,一直拖到最底,發現又多出了20條數據,通過瀏覽器相關工具找到多了一個數據存儲的地址,地址為https://www.toutiao.com/api/article/feed/?category=essay_joke&utm_source=toutiao&widen=1&max_behot_time=1495705163&max_behot_time_tmp=1495705163&tadrequire=true&as=A18579F2460C72B&cp=59265C47E2CBAE1

本以為可以通過修改存儲地址中變動的參數就可以無限的獲取笑話數據了,然而發現變動的參數有四個,分別是max_behot_time,max_behot_time_tmp,as,cp,而且也不知道參數的值代表的意思。後來經過我一下午的潛心研究,才搞明白max_behot_time和max_behot_time_tmp指的是你打開網頁的時間(格林威治秒),剩下兩個參數as和cp死活搞不懂是什麽,只曉得是16進制數

好吧,最後我又試著刪了這倆參數,結果發現CP刪掉影響不大,而as刪掉就獲取不了數據了,修改as值也不行。有興趣有時間的大神可以幫忙看看這個as參數哦,謝謝~~

Python爬取今日頭條段子