Python爬虫5简介: 获取JS动态内容抓取当今的头条新闻

优采云 发布时间: 2020-08-07 15:11

  

  我们之前抓取的网页主要是HTML静态生成的内容. 您可以直接从HTML源代码中找到看到的数据和内容. 但是,并非所有网页都是这样.

  某些网站的内容是由前端JS动态生成的. 由于网页上显示的内容是由JS生成的,因此我们可以在浏览器中看到它,但是无法在HTML源代码中找到它. 例如,今天的头条新闻:

  浏览器呈现的网页如下:

  

  今天的头条新闻

  检查源代码,但是看起来像这样:

  

  HTML源代码

  在HTML源代码中找不到该网页的新闻,所有这些都是由JS动态生成和加载的.

  在这种情况下,我们应该如何抓取网页?有两种方法:

  1. 从网页响应中找到JS脚本返回的JSON数据; 2,使用Selenium模拟对网页的访问

  这里仅介绍第一种方法. 有一篇关于硒的使用的特别文章.

  1. 从网页响应中找到JS脚本返回的JSON数据

  即使Web内容是由JS动态生成和加载的,JS也需要调用一个接口,并根据该接口返回的JSON数据进行加载和呈现.

  因此,我们可以找到JS调用的数据接口,并从数据接口中找到网页中显示的最后数据.

  以今天的头条新闻为例进行演示:

  1. 找到JS请求的数据接口

  F12打开Web调试工具

  

  Web调试工具

  选择“网络”标签后,我们发现响应很多. 让我们进行过滤,仅查看XHR响应.

  (XHR是Ajax中的一个概念,表示XMLHTTPrequest)

  然后我们发现缺少很多链接,只需单击一个链接即可查看:

  我们选择城市,预览中有一串json数据:

  

  让我们再次单击它:

  

  事实证明,它们都是城市列表,应用于加载区域新闻.

  现在您可能了解如何找到JS请求的接口,对吗?但是,现在我们找不到所需的新闻,因此请再次查找:

  有一个焦点,让我们单击它以查看:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线