Python网络爬虫项目实战 项目四 爬取网站动态页面.ppt

Python网络爬虫项目实战 项目四 爬取网站动态页面.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
爬取网站动态页面 情景描述 小明在解析页面的时候,遇到了一个很奇怪的问题。浏览器上显示的页面数据,在解析的时候找不到!页面源代码已经完整的下载,为什么会有数据被遗漏呢?学习一直很顺利的小明被页面上一个小小的数据难住了。小明没有轻易放弃,查询资料请教老师,终于找到了原因:下载页面时被遗漏的信息是异步请求返回的数据,并不在已下载的HTML文档中。 最困难的时候,也就是离成功不远的时候。被克服的困难就是胜利的契机。 目录 任务一 爬取网站深层页面 任务二 使用selenium库爬取网页 任务三 使用selenium库实现用户验证 学习目标 ?分析页面的异步加载请求 ?爬取页面异步加载数据 ?使用selenium库爬取网页 任务一 爬取网站深层页面 任务描述 通过前面章节的学习,大家已经可以爬取大部分的表层页面,在爬取页面时常常会发现爬取程序下载的HTML文档与在浏览器中看到的内容不太一致的情况。爬取深层页面就会出现这个问题。 深层页面的内容不是一次性发送给客户端的,通常是在浏览器已经下载并展示页面后,又通过Ajax程序向网站服务器发送了其他请求,并将网站服务器返回的数据动态加载到页面呈现里。而爬虫程序只是向一个指定url发送了请求,并没有发送异步请求,因此没有接收到到网页异步加载的数据,爬取到的内容和网页的真实呈现就会有差别。甚至有的时候我们真正需要的数据并不是呈现在页面上的html源代码,而仅仅是异步加载的数据,此时就要做深层页面的爬虫。 在本章节,我们分析深层页面并爬取网页加载的异步请求数据。 1.1 了解异步加载 异步加载是浏览器发送请求并获得响应信息呈现页面后,又发送了其他的请求获取新的数据并更新了页面呈现。在更新过程中,浏览器页面并不整体刷新,而是用异步请求的数据对之前已经呈现的页面进行局部修改。 1.2 用户验证过程分析 在项目二里面爬取的用户信息验证页面,其实就是一个深层页面。再次在浏览器中打开该页面分析一下验证过程,我们可以发现:在点击登录进入验证页面后浏览器的呈现如图4-1所示,我们输入测试用户名和密码后点击登录,此时页面并没有整体刷新,但是页面上多了一行提示信息:“账号或密码错误”,如图4-2所示。 1.2 用户验证过程分析 其实,用户在点击登录按钮时,触发了该页面的JavaScript方法,向服务器发送了Ajax请求,如图4-3所示。 1.2 用户验证过程分析 这个请求是异步请求,$.post()方法向网站服务器发送了一个post请求。 该方法的第一个参数是请求的url: index.php?_d=login&_f=login&act=login 它是一个相对路径,连接上当前页面路径之后可以拿到完整的请求url: /index.php?_d=login&_f=login&act=login 这个url才是接收并验证用户信息的服务器端程序。 该方法的第二组参数是用户名和密码(字典类型): {userName:userName.value,userPwd:userPwd.value} 任务二 使用selenium库爬取网页 任务描述 使用爬虫库和各种解析库获取页面信息,代码很复杂。本任务中我们学习使用selenium库,更加快捷地爬取页面数据。 2.1 安装selenium库 selenium是Web自动化测试工具,可以模拟浏览器行为,支持大多数主流的界面式浏览器。 selenium在使用之前要先下载安装。 方法一: 到官网下载安装文件:/pypi/selenium https://www.selenium.dev/downloads/ 方法二: 在命令行窗口执行命令:pip install selenium 可能会需要升级pip:python -m pip install 2.2 安装chromedriver selenium自身不带浏览器,需要和其他浏览器配合使用。 selenium在调用Chrome浏览器时,必须先安装chromedriver(也可以调用其他浏览器,主流浏览器有各自的补丁文件,本书以Chrome浏览器为例),下载地址为: /index.html 要下载和自己机器浏览器版本匹配的chromedriver。 将下载的chromedriver.exe文件放在python安装目录下(python.exe文件所在目录)或浏览器安装路径下。 任务三 使用selenium库实现用户验证 任务描述 在本任务中,我们使用selenium库控制Chrome浏览器访问大连理工大学出版社官网首页,单击“登录”按钮打开用户验证页面,在验证表单中输入用于测试的用户名和密码并单击“登录”按钮,实现登录表单的用户验证。 3.1 定位页面元素 本章小结 本项目主要介绍了深层页面的异步请

文档评论(0)

dllkxy + 关注
实名认证
内容提供者

本文库主要涉及建筑、教育等资料,有问题可以联系解决哦

版权声明书
用户编号:5213302032000001
认证主体丁**

1亿VIP精品文档

相关文档

相关课程推荐