用爬虫抓取动态加载数据丨Python爬虫实战系列(6)

您所在的位置:网站首页 动态网页数据抓取工具怎么用 用爬虫抓取动态加载数据丨Python爬虫实战系列(6)

用爬虫抓取动态加载数据丨Python爬虫实战系列(6)

#用爬虫抓取动态加载数据丨Python爬虫实战系列(6)| 来源: 网络整理| 查看: 265

在这里插入图片描述 提示:最新Python爬虫资料/代码练习>>戳我直达

前言

抓取动态加载数据 在这里插入图片描述在这里插入图片描述 话不多说,开练!

爬虫抓取动态加载数据 确定网站类型

首先要明确网站的类型,即是动态还是静态。检查方法:右键查看网页源码 —> 搜索“辛德勒的名单”关键字,如下图所示: 爬虫抓取动态网站 图1:分析网站类型

最终发现源码页中没有出现想要抓取的数据,只有一大堆的 JS 代码,由此确定该网站为动态网站。

影片详情信息

接下来,使用快捷键 F12 打开控制台进行抓包,点击NetWork选项卡 —>XHR选项 —> Preview选项卡 —> 刷新当前页面抓取数据包,如下图所示:

抓取动态网站数据包 图2:抓取动态网站数据包

从图 2 可知,我们想要抓取的数据取全部包含在当前的数据包中。当我们向下滚动鼠标滑轮时,左侧栏内的数据包会实现自动加载,这是使用Ajax异步加载技术实现的。

通过查看数据 Headers 选项可以明确 url 地址、查询参数等信息,如下所示:

抓取动态加载的数据包 图3:分析Headers信息

从上图可以得知请求的基准 URL (由于还未拼接查询参数,所以称之为基准 URL),如下所示: 在这里插入图片描述 继续滚动鼠标滑轮可知查询参数具有如下规律:

type: 4 # 电影类型 interval_id: 100:90 #代表网页上滑动条的百分比(好于100%-90%的历史片) action: '' # 空 start: 0 # 每次加载电影的起始索引值 0 20 40 60 limit: 20 # 每次加载的电影数量,1为初始值,后续加载时20固定不变

注意:寻找规律时,后加载出来的数据包会排在最前面,除去第一个数据包外,其余数据包如下所示:

抓取动态加载的数据 图4:寻找查询参数值的规律

影片总数量

注意:第一个数据包反映了每个类型中电影的总数量,其 url 与响应信息如下: 在这里插入图片描述

影片类型与类型码

影片的类型与类型码包含在电影排行榜的主界面中,如下所示:

爬虫抓取动态加载数据 图5:影片类型与类型码

分析上述页面结构,然后使用正则表达式来提取想要的数据,并定义选择菜单“menu”,代码如下所示:

import re def get_all_type_films(self): # 获取影片类型和类型码 url = 'https://douban-dy网址/chart' headers = self.get_headers() html = requests.get(url=url, headers=headers).text re_bds = r'


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3