首页@恒行3注册-平台登录首页
  • 恒行3注册
  • 恒行3登录
  • 恒行3招商
  • 文章正文
    爬虫快速入门(二):动态网页爬取
    作者:admin 发布于:2024-04-01 15:29 文字:【 】【 】【
    摘要:上一篇文章简单介绍了静态网页的爬取,今天和大家分享一些动态网页爬取的技巧。什么是动态网页呢,举个很常见的例子,当我们在浏览网站时,随着不断向下滑动网页,当前页面会

      上一篇文章简单介绍了静态网页的爬取,今天和大家分享一些动态网页爬取的技巧。什么是动态网页呢,举个很常见的例子,当我们在浏览网站时,随着不断向下滑动网页,当前页面会不断刷新出新的内容,但浏览器址栏上的URL却始终没有变化。这种由JavaScript动态生成的页面,当我们通过浏览器查看它的网页源代码时,往往找不到页面上显示的内容。

      抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。

      在做JS逆向前,我们首先要学会用浏览器抓包。以Chrome 浏览器为例,打开网易新闻主页

      右键查看网页源码与按F12打开开发者工具看到的源代码是不一样的,而且当我们下拉页面时,开发者工具中的源代码还在不断增加,这才是JS渲染后的源代码,也是当前网站显示内容的源代码。

      如上图所示,抓包时主要使用Network这个选项卡,当按F5刷新页面后,下方的显示框中会出现很多包,我们可以用上方Filter栏对这些包进行归类。

      这里主要使用XHR、JS这两类,例如选中XHR,点击过滤后的第一个包,显示界面如下,右侧会出现一排选项卡,其中Headers下包含当前包的请求消息头、响应消息头;Preview是对响应消息的预览,Response是服务器响应的代码。

      了解了这些之后,我们依次点击XHR、JS下的所有包,通过Preview来预览当前包的响应信息,寻找我们想要的结果。例如我们在下面这个包找到了文章列表,通过Headers找到了Request URL,这才是我们真正应该请求的路径。

      当翻滚页面时,发现JS下又多了下面这几个包以及新的Request URL,与之前的对比,可以很容易的找到一个通用的URL。分析到这,我们可以开始写代码了。

      这里爬取了国内和国际两个板块,每个板块取向下滚动3次的所有文章,并通过文章详情页的链接爬取文章内容,最终爬到了289篇文章。

      需要注意的是爬取频率过快会导致访问失败,建议每爬取一次sleep会儿,另外亲测把线程数调大也很有用。有条件的可以加个ip代理池,之前用过免费的,基本上没几个能用的ip,还是得氪金啊。全部代码及数据已上传到github,需要的同学请自取。

    相关推荐
  • 爬虫之动态页面爬取
  • 爬虫快速入门(二):动态网页爬取
  • Puppeteer 爬取动态生成的网页实战
  • 易周资讯2021第38期 关注行业动态掌握前沿资讯
  • 本科毕业生就业TOP10榜单出炉:教育业人才需求火热金融业降温
  • 今日全国各地猪肉价格走势及行情分析
  • 一季度SPD 行业洞察:企业“破圈”要素与可持续发展
  • 最新! 2019届毕业生就业最多十大职业出炉!
  • 关注建筑企业动态用什么app?
  • 关注全国科技行业动态
  • 脚注信息
    Copyright © 2027 恒行3注册 TXT地图 HTML地图 XML地图