山西事业单位考试:动态网页抓取(解析真实地址+selenium)

优采云 发布时间: 2021-07-14 01:04

  山西事业单位考试:动态网页抓取(解析真实地址+selenium)

  第四章:动态网页爬取(解析真实地址+selenium)

  由于网易云线程服务暂停,新写的第4章现更新到这里。请参考文章:

  之前抓取的网页都是静态网页,浏览器中显示的此类网页的内容都在HTML源代码中。但是,由于主流的网站使用JavaScript来展示网页内容,与静态网页不同,使用JavaScript时,很多内容不会出现在HTML源代码中,因此抓取静态网页的技术可能无法正常工作。因此,我们需要使用两种技术进行动态网络爬虫:通过浏览器评论元素解析真实网址和使用 selenium 模拟浏览器。

  本章首先介绍动态网页的例子,让读者了解什么是动态抓取,然后利用以上两种动态网页抓取技术获取动态网页数据。

  4.1 动态捕捉示例

  在抓取动态网页之前,我们还需要了解一种异步更新技术——AJAX(Asynchronous Javascript And XML)。它的价值在于通过后台与服务器的少量数据交换来异步更新网页。这意味着可以在不重新加载整个网页的情况下更新网页的某些部分。一方面减少了网页重复内容的下载,另一方面也节省了流量,所以AJAX被广泛使用。

  与使用 AJAX 网页相比,如果需要更新传统网页的内容,则必须重新加载整个网页。因此,AJAX 使 Internet 应用程序更小、更快、更用户友好。但是AJAX网页的抓取过程比较麻烦。

  首先,让我们看一个动态网页的例子。在作者的博客上打开Hello World文章,文章地址:/2018/07/04/hello-world/。网站可能有变动,请到作者官网查找Hello World文章地址。如图4-1所示,页面下方的评论加载了JavaScript,这些评论数据不会出现在网页的源代码中。

  

  

  为了验证页面下方的评论是否加载了 JavaScript,我们可以查看该页面的源代码。如图4-2所示,放置注释的代码中没有注释数据。只有一段 JavaScript 代码。最后呈现的数据是通过JavaScript提取出来的,加载到源代码中进行呈现。

  

  

  除了作者的博客,你还可以在天猫电商网站上找到AJAX技术的例子。比如打开天猫iPhone XS Max的产品页面,点击“累计评价”,可以发现上面的URL地址没有变化,整个网页没有重新加载,网页的评论部分有已更新,如图 4-3 所示。显示。

  

  

  如图4-4所示,我们也可以查看该产品网页的源码。里面没有用户评论,这段内容是空白的。

  

  

  如果使用 AJAX 加载的动态网页,如何抓取动态加载的内容?有两种方式:

  (1)通过浏览器评论元素解析地址。

  (2)Selenium 模拟浏览器爬行。

  请查看第四章的其他章节

  4.2 解析真实地址爬取

  4.3 通过 selenium 模拟浏览器爬行

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线