Python爬取今日头条段子
刚入门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参数哦,谢谢~~