爬取ajax动态加载网页——以豆瓣分类电影排行榜
2019-06-19 20:16
435 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42066363/article/details/92844156
**
网络爬虫练习——爬取ajax动态加载网页
**
如今大多数的网页是通过Ajax加载的,也就是说通过这种方式加载后,就算得到了HTML文档,也不会包含任何数据,而这些数据是通过Ajax加载后才会呈现出来。以豆瓣剧情分类下的电影网页为例,来爬取网页信息,解决动态加载问题。
主要的一部分是查看动态加载的页面的数据,这些数据一般会在Network的 JS或者 XHR 里,查看动态加载的json文件的步骤为:鼠标右击—检查—network—XHR—单击Name中一个XHR—Preview或是鼠标右击—检查—network—单击Name中一个XHR—JS,这样我们通过得到的json文件来分析数据并爬取自己想要的信息。另外我们模拟Ajax请求需要查看页面的源码,具体步骤为鼠标右击—检查—network—单击Name中一个XHR—Headers—Query String Parameters,这样我们就获得了模拟Ajax请求需要的数据
程序代码(只爬取了2页,要想爬取更多页可以通过修改start的值实现)如下:
from urllib.parse import urlencode import requests import time base_url = 'https://movie.douban.com/j/chart/top_list?' headers = { 'Host': 'movie.douban.com', 'Referer': 'https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action=', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' } def get_page(start): params = { 'type': '11', 'interval_id': '100:90', 'action': '', 'start': start, 'limit': 20, } url = base_url + urlencode(params) try: response = requests.get(url, headers=headers) print('Successful') return response.json() except requests.ConnectionError as e: print('Error', e.args) def parse_page(html): for item in iter(html): movie = {} movie['rank'] = item['rank'] movie['title'] = item['title'] movie['actors']= item['actors'] movie['regions']= item['regions'] print(movie) if __name__ == '__main__': for start in range(1, 3): html = get_page(start * 20) time.sleep(1) parse_page(html)
结果如下:
相关文章推荐
- python爬取动态网站实例——以爬取豆瓣电影分类排行榜为例
- python爬虫实战-爬取豆瓣电影分类排行榜(ajax-get)
- ajax异步加载,爬取豆瓣电影排行榜,爬虫案例
- Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题
- 异步加载(Ajax)网页信息获取-以豆瓣电影为例
- Java爬虫——phantomjs抓取ajax动态加载网页
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- python爬虫(爬取豆瓣电影)_动态网页,json解释,中文编码
- python3爬取豆瓣电影Ajax(获取动态内容)
- Ajax实现瀑布流动态加载网页
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- Java爬虫——phantomjs抓取ajax动态加载网页
- 利用js将ajax获取到的后台数据动态加载至网页中
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- 利用js将ajax获取到的后台数据动态加载至网页中
- python 爬取豆瓣电影(动态加载页面)
- 利用js将ajax获取到的后台数据动态加载至网页中的方法
- mui图片轮播ajax动态加载后不轮播
- 利用 Python 爬取豆瓣电影排行榜 Top250 的数据
- JavaScript基于Ajax实现不刷新在网页上动态显示文件内容