php抓取网页动态数据(python如何检测网页中是否存在动态加载的数据?(图) )
优采云 发布时间: 2022-01-19 09:15php抓取网页动态数据(python如何检测网页中是否存在动态加载的数据?(图)
)
在使用python爬虫技术采集数据信息时,经常会遇到在返回的网页信息中无法抓取到动态加载的可用数据。例如,当在网页中获取产品的价格时,就会出现这种现象。如下所示。本文将实现类似的动态加载数据爬取网页。
1. 那么什么是动态加载的数据呢?
我们通过requests模块爬取的数据不能每次都是可见的,部分数据是通过非浏览器地址栏中的url请求获取的。相反,通过其他请求请求的数据,然后通过其他请求请求的数据是动态加载的数据。(猜测是js代码在我们访问这个页面从其他url获取数据的时候会发送get请求)
2. 如何检测网页中是否有动态加载的数据?
在当前页面打开抓包工具,在地址栏抓到url对应的数据包,在数据包的response选项卡中搜索我们要抓取的数据。如果找到了搜索结果,说明数据不是动态加载的。否则,数据将被动态加载。如图所示:
3. 如果数据是动态加载的,我们如何捕获动态加载的数据呢?
在实现对动态加载的数据信息的爬取时,首先需要根据动态加载技术在浏览器的网络*敏*感*词*中选择网络请求的类型,然后通过对预览信息中的关键数据进行过滤查询,得到对应请求地址,最后解析信息。具体步骤如下:
在浏览器中,按快捷键F12打开开发者工具,然后选择Network(网络监视器),在网络类型中选择JS,然后按快捷键F5刷新,如下图。
在请求信息列表中,依次点击各个请求信息,然后在对应的Preview(请求结果来源gaodai#ma#com eng@code~code$net preview)中查看是否是需要动态加载的数据得到,如下图所示。
查看动态加载的数据信息后,点击Headers获取当前网络请求地址和所需参数,如下图所示。
根据上述步骤得到的请求地址,发出网络请求,从返回的信息中提取商品价格信息。作者在代码中使用了反序列化。关于json序列化和反序列化,可以点这里学习。代码如下:
CodeNet() 提供的所有资源均来自互联网。如侵犯您的著作权或其他权益,请说明详细原因并提供著作权或权益证明,然后发送至邮箱,我们会尽快看到邮件处理你,或者直接联系。此网站 由 BY-NC-SA 协议授权
转载请注明原文链接:Python实现网页动态加载数据的爬取
报酬
[做代码]