动态网页抓取(爬取动态网页的另一种方法-上海怡健医学)

优采云 发布时间: 2021-09-24 02:13

  动态网页抓取(爬取动态网页的另一种方法-上海怡健医学)

  首先介绍动态网页,它使用【客户端语言改变页面的HTML和CSS元素】。例如,一个网页使用加载网页将您介绍到另一个页面,但该页面的 URL 连接没有改变,或者当您单击空白时页面会改变颜色。

  然后是客户端脚本语言,它是一种运行在浏览器而不是服务器上的语言。网上通常会遇到两种客户端语言:ActionScript(开发flash应用程序的语言)和JavaScript。

  JavaScript 常用于为网页添加各种动态功能,为用户提供更流畅美观的浏览效果。通常 JavaScript 脚本通过将它们嵌入到 HTML 中来实现它们的功能。

  比如一个下拉的动态网页,加载后可以在浏览器的开发者工具的网络中的JS选项中看到它刚刚执行的JavaScript,点击就可以看到代码。

  目前已经写了一堆爬虫。对于动态网页,比如图片的下拉加载,在开发者工具/网络/图片中找到图片,分析图片地址的特征,然后在JS中找到刚才的JavaScript文件,如果可以的话可能收录找到比较规范的图片信息,或者网页的跳转关系,可以很方便的写程序,在图片地址下载图片。

  这种方法是逆向分析。

  另一种爬取动态网页的方式是模拟浏览器,通常是Selenium+PhantomJS。

  Selenium 是一个浏览器自动化测试框架,最初是为自动化测试而开发的,现在也用于网络数据采集。框架底层使用JavaScript模拟真实用户操作浏览器。测试脚本执行时,浏览器会根据脚本代码自动进行点击、输入、打开、验证等操作,就像真实用户一样,站在最终用户的角度测试应用。

  Selenium 本身没有浏览器,需要配合第三方浏览器使用。之前用过火狐,每次运行都会打开一个浏览器窗口,程序运行一目了然。PhantomJS 是一个无头浏览器,不显示浏览器窗口。

  Selenium+PhantomJS 可以运行一个非常强大的网络爬虫,它可以处理 cookie、JavaScript、headers 以及您需要做的任何事情。

  2018-03-01 13:50

  不知道有没有朋友喜欢,嘿嘿,,,啾^啾,,

  没有图的答案注定不喜欢吗?

  这是一条更新线,下面的信息是旧新闻。

  反正都是原答案,舍不得删,不喜欢直接跳过

  ╯▂╰

  我是在寒假期间学习的。几天前我想爬一个网站。我查看了开发者工具中的数据,将其作为静态网页进行抓取。然后我爬下来的时候找不到任何数据。

  然后才知道在开发者工具里看到的网页源码是通过JavaScript渲染的,通过Requests得到的源码没有我想要的数据。

  之前看书的时候讲了selenium模块。考虑到用它来模拟浏览器的时候不容易被逆转,我就用它爬过12306查票。

  我能想到的第一种方法是使用selenium,但是我认为它的速度不能满足我的需求,而且我非常抗拒。(呃(~_~;)

  那我只好百度了,肯定会有其他的解决办法。

  然后CSDN上有一篇很全面的文章。

  套用大佬的总结:

  动态网页可以通过逆向分析尽可能进行逆向分析,其稳定性和效率是其他解决方案无法比拟的。通常,爬虫有口耳相传的真理。如果点击浏览器F12大法,90%的爬虫问题都可以解决,剩下的10%就需要我们动脑筋了。这适用于动态页面抓取。如果你能扭转它,试着扭转它。如果无法逆转,请找到折衷的解决方案。在折中方案中,可以尽量使用深度控制JS脚本执行计划(难度稍高),然后是基于标准的浏览器自动化测试框架(即selenium和PhantomJs)爬取。

  如需进一步了解,请直接前往网站:

  /yanbober/article/details/73822475?locationNum=3&fps=1

  时间:2018-02-10 01:23

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线