python抓取动态网页(来源百度百科动态网页的特点及特点)

优采云 发布时间: 2021-09-14 09:14

  python抓取动态网页(来源百度百科动态网页的特点及特点)

  前言

  本文文字和图片来自网络,仅供学习交流之用。它们没有任何商业用途。版权属于原作者。如果您有任何问题,请联系我们进行处理。

  欢迎关注小编。除了分享技术文章,还有很多好处。您可以收到私人学习资料,包括但不限于Python实践练习、PDF电子文档、面试亮点、学习资料等。

  一、什么是动态网页

  所谓动态网页,是指相对于静态网页的网页编程技术。对于静态网页,随着html代码的生成,页面的内容和显示效果基本不会发生变化——除非你修改页面代码。这不是动态网页的情况。虽然页面代码没有改变,但显示的内容会随着时间、环境或数据库操作的结果而改变。 ——来源百度百科

  动态网页具有工作量少、内容更新快、功能更齐全的特点。被很多公司所采用,如购动、素宝、素饭等。

  二、AJAX 是什么

  随着人们对动态网页的加载速度要求越来越高,AJAX 技术应运而生,并成为许多网站的首选。 AJAX 是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,使网页可以异步更新。这意味着无需重新加载整个网页即可更新网页的某些部分。

  三、如何抓取AJAX动态加载网页

  1.解析接口

  只要有数据发送,必然有请求发送到服务器。我们只需要找出它静默加载的页面的真实请求。特点:爬取速度快,爬取数据干净,部分网站比较难解析。

  2.硒

  什么是硒?它最初是一个自动化测试工具,但被广泛的用户抓取。是一款可以用代码操作浏览器的工具,比如控制浏览器的下滑,模拟鼠标点击等。 特点:代码比较简单,爬取速度慢,IP容易被封。

  项目实操

  *敏*感*词*历年公布的开庭信息和执行信息。

  长这样:

  

  然后,第一页就提取成功了

  接下来,我加了一个for循环,想着花几分钟从这个网站2164页面中提取32457个*敏*感*词*公告数据到excel中。

  那么,就没有了。你也应该知道,看了前面的理论部分,这是一个AJAX动态加载的网页。无论你如何点击下一页,url都不会改变。如果你不相信我,我就给你看。左上角的url像山一样矗立在那里:

  

  一、Analysis 界面

  这种情况下,让我们开始爬虫的正确姿势,先用解析接口的方法来写爬虫。

  首先,找到真正的请求。右键勾选,点击Network,选择XHR,刷新网页,在Name列表中选择jsp文件。没错,就是这么简单,真正的请求藏在里面。

  

  我们仔细看看这个jsp,真是个宝。有真实的请求url、post请求方法、Headers、Form Data,From Data代表传递给url的参数。通过改变参数,我们可以得到数据!

  

  让我们仔细看看这些参数,pagesnum参数只是代表页数!我们尝试点击翻页,发现只有pagesnum参数会发生变化。

  

  既然找到了,就赶紧抓起来吧。

  

  构建一个真实的请求并添加标题。

  

  构建get_page函数,参数为page,即页数。创建字典类型的表单数据,并使用post请求网页数据。注意对返回的数据进行解码并编码为‘gbk’,否则返回的数据会出现乱码!另外,我还优化了异常处理,防止意外发生。

  

  构建parse_page函数解析返回的网页数据,用Xpath提取所有字段内容,并以csv格式保存。

  

  最后遍历页数,调用函数。好的,完成!

  

  我们来看看最终的结果:

  

  综上所述,对于网络爬虫的AJAX动态加载,一般有两种方式:解析接口;硒。建议解析接口。如果是解析json数据,最好是爬取。如果您不知道该怎么做,请再次使用 Selenium。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线