分享好友 最新资讯首页 最新资讯分类 切换频道
Python实战——轻松实现动态网页爬虫(附详细源码)
2024-12-29 13:51

大家好,我是东眠的鱼,专注原创,致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货,希望人人都能学到新知识。<文末附带精品籽料哦,也可以和博主一起学Python呀!>


  • 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】


项目背景

有同学自学爬虫时,发现翻页的时候,url一直不变。其实他爬取的是较高难度的网页——动态网页。今天给大家介绍动态网页的爬虫!

AJAX动态加载网页

一、什么是动态网页

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

动态网页具有减少工作量、内容更新快、可完成功能多等特点,被很多公司所采用,比如狗东、某宝、某瓣、某乎等等。

二、什么是AJAX

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

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

1. 解析接口

只要是有数据发送过来,那肯定是有发送到服务器的请求的吧。我们只需找出它悄悄加载出的页面的真实请求即可。特点:爬取速度快,爬取的数据干净,有些网站解析难度较大。

2. Selenium

selenium是什么呢?它本来是个自动化测试工具,但是被广泛的用户拿去爬虫了。它是一个工具,这个工具可以用代码操作浏览器,比如控制浏览器的下滑、模拟鼠标点击等。特点:代码较简单,爬取速度慢,容易被封ip。

项目实操

怎么说了那么多理论,说实话也不想那么啰嗦。可是吧,这些东西经常会被问到,干脆直接写下来,下次还有人问就直接把这篇文章发给他,一劳永逸

我们拿一个法院信息公示网页举例

那我们就开启爬虫的正确姿势吧,先用解析接口的方法来写爬虫。

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

我们再仔细看看这个jsp,这简直是个宝啊。有真实请求url,有请求方法post,有Headers,还有Form Data,而From Data表示给url传递的参数,通过改变参数,咱们就可以获得数据

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

既然发现了它,那就赶紧抓住它。打开PyCharm,导入了爬虫所需的库。

 

构造真实请求,添加Headers。

 

构建get_page函数,自变量为page,也就是页数。以字典类型创建表单data,用post方式去请求网页数据。这里要注意要对返回的数据解码,编码为’gbk’,否则返回的数据会乱码!另外我还加了异常处理优化了下,以防意外发生。

 

构建parse_page函数,对返回的网页数据进行解析,用Xpath提取所有字段内容,保存为csv格式。有人会问为这么喜欢用Xpath,因为简单好用啊

 

最后,遍历一下页数,调用一下函数。OK,搞定

 

我们来看一下最终效果

结 语

总结一下,对于AJAX动态加载网页爬虫,一般就两种方式:解析接口;Selenium。这次就先介绍了解析接口方式,个人还是推荐解析接口的方式,如果解析的是json数据,就更好爬了。实在没办法了再用Selenium吧。


  • 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】


包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python
,清楚各个方向要学什么东西
,涵盖必备基础、爬虫和数据分析
,学习不再是只会理论
,手机也能学习
,复习时非常方便******

最新文章
探讨十款高人气的电脑维护与优化工具
下面给大家推荐几款好用的免费的重装系统软件,有需要的小伙伴们来了解一下。系统重装专家官方版是一款方便易用的电脑重装软件。
百度百科词条可以随便编辑吗?谁都可以编辑吗?
很多用户会有这样的感觉,在百度上搜索某个人物名称或是某个企业名称,只要能搜出来百度百科词条就会下意识觉得这个人物或是企业
浅析访谈式课堂教学在干部培训中的应用
浅析访谈式课堂教学在干部培训中的应用中共温岭市委党校 陈周宁内容提要:干部教育是党校的核心工作之一。在新形势下,如何充分
Ubuntu16.04 下docker部署web项目
概念性的请戳安装完成之后默认会启动docker服务,如果没有启动和正常服务一样启动就好待续中·················
【面试】vivo-java开发-安卓方向-技术一面
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java 的人,心里也
网站流量与率双提升,网络推广优化策略全解
网络推广优化旨在通过策略提升网站流量和率。关键包括:优化关键词,提高搜索引擎排名;优化网站结构,提升用户体验;运用社交媒
深入探讨床戏高峰瞬间的大尺度视频平台解析
触糖c1v1骨科是一种极具话题性的小说题材,通过探讨家庭和社会的复杂关系,引发读者的思考。在这一系列作品中,作者常常融入个人
珠三角最贵墓地每平米11万元 部分墓地限购
  每到清明,墓地价格和墓地存量就备受关注。眼看珠三角墓地价格年年水涨船高,到底哪里便宜哪里贵,各城还剩多少墓地可用?南
万能学术搜索引擎搭建-基于streamlit
万能超级搜索引擎V7.0(赚钱版)绝对是目前全国功能最优秀的超级搜索引擎之一全国已超过1000个网站和超过100家网吧正在使用本程序V
微信分身版ios免费版下载最新版
微信分身版ios免费版下载最新版是一款非常好用的社交聊天软件!我们手机上只能安装一个微信,这款软件可以同时让你安装多个。多