如何爬取审查元素中Elements里有的,而源代码里没有的标签内容?

写在最前:

有些网页采用了异步加载的方式,将部分内容放在了其他的URL地址中,导致我们通过审查元素可以在相应的标签找到该内容,但在检查源代码的时候发现没有该内容,自然通过当前的url爬取不到目标数据。

解决方法

找到加载过程中加载的需要动态异步加载的json文件,获取它的URL地址。

以某网站(巨潮资讯网)为例:

网址:

http://www.cninfo.com.cn/new/fulltextSearch?notautosubmit=&keyWord=%E8%82%A1%E7%A5%A8%E8%B4%A8%E6%8A%BC&login=from_csdn

在这里插入图片描述

这里我们尝试去爬取搜索结果,发现放置“搜索结果”的这部分网页源代码中看不到。

如何抓取被隐藏的数据?

我们在搜索结果页右键点击检查,进入审查页 ——> 再点击Network选项卡 ——> 点击XHR选项 ——> 然后刷新一下网页。如下图所示:

在这里插入图片描述

异步加载的数据在这里,我们点进去看看,切换到perview选项卡,如下图所示:

在这里插入图片描述

发现在这里能够找到我们所需要的数据。

找到目标网页了,接下来我们切换到headers选项卡,如图所示:

在这里插入图片描述

这里的URL才是我们想要的数据的目标地址。你可以复制一下该地址在浏览器中访问一下便可以看到想要的数据在这个地址中。

接下来通过该URL及相应的头文件、cookie信息我们就可以爬取到该内容了。

import requests

url = 'http://china.nba.com/static/data/player/stats_klay_thompson.json' 
headers = {
        "Cookie": "ssxmod_itna=YqUxgDnie4U7rN/qDWPu5HiDD==; ssxmod_itna2=YqUxgDnief8a00178741cfdf0b1e5e5b62fb156cd2b",
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.232.400 QQBrowser/12.3.5582.400',
        }
r = requests.get(url,headers)
print(r.text)

参考:

页面源码中找不到数据?

获取隐藏了部分内容的网页源代码,审查元素可以,查看源代码不行。

如何使用python或R抓取网页被隐藏的源代码

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 18:04:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 18:04:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 18:04:01       82 阅读
  4. Python语言-面向对象

    2024-03-14 18:04:01       91 阅读

热门阅读

  1. 【Docker】PostgreSQL 容器化部署

    2024-03-14 18:04:01       81 阅读
  2. 最新ChatGPT支持下的PyTorch机器学习与深度学习

    2024-03-14 18:04:01       38 阅读
  3. 0 OpenHarmony开源鸿蒙NEXT星河版内核嵌入式编程

    2024-03-14 18:04:01       37 阅读
  4. Nginx和Ribbon相比有哪些不同?

    2024-03-14 18:04:01       43 阅读
  5. 富格林:严守交易安全阻挠受害

    2024-03-14 18:04:01       36 阅读
  6. QT TCP通信介绍

    2024-03-14 18:04:01       33 阅读
  7. python之面向对象

    2024-03-14 18:04:01       37 阅读