通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)

通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)type=tv&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start={}&q

大家好,欢迎来到IT知识分享网。

之前我们访问的都是html页面,但是在现实开发中很多页面都是通过ajax请求获取并且展示数据的,今天我们来学习如何获取页面中的ajax请求返回的信息。

通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)

分析

先打开一个网站,通过chrome工具中的network的xhr选项可以看到对应的ajax请求。

通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)

请求如下

https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0

可以看到返回的json文件

通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)

这些jason文件是我们需要获取的最终信息。

编码

这里主要是多ajax的请求进行分析,实际上需要传入一个参数就可以了。page_limit是指的每页有多少数据,page_start是指从第几页可以请求。我们这里对page_start进行修改就好了。生成一个死循环,退出的条件是返回的数据为空。但是,这里是测试,我加了一个计数器,到了10的时候就退出了。免得对别人的网站造成影响。

提供代码给大家参考

from urllib.request import Request, urlopen from fake_useragent import UserAgent base_url ="https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start={}" i = 0 while True: headers = { "User-Agent": UserAgent().chrome } url = base_url.format(i * 20) request = Request(url, headers=headers) response = urlopen(request) info = response.read().decode() print(info) if info == "" or info is None or i==10: print("got all of data") break i += 1 print("get "+ str(i) + " page") 

测试结果

通过ajax请求获得信息,没想到应用范围如此广,python爬虫(4)

返回了每个页面的数据。以后如果需要对ajax请求数据就可以用这种方法。

喜欢的朋友帮我转发,谢谢各位。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58892.html

(0)
上一篇 2024-07-01 18:26
下一篇 2024-07-01 21:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信