【问题标题】:Webpages appear differently from Browser to API网页从浏览器到 API 的显示方式不同
【发布时间】:2021-08-07 10:17:51
【问题描述】:

我正在尝试从CNBC US Market Movers 页面中提取报价数据。

使用 BeautifulSoup4,我尝试了这个简单的页面查看。

from bs4 import BeautifulSoup
import requests

website = requests.get('https://www.cnbc.com/us-market-movers/')
soup = BeautifulSoup(website.text, 'lxml')

print(website.text)

打印的结果不包含任何报价或股票或任何东西。

我正在寻找的是这些符号....

【问题讨论】:

标签: python-3.x beautifulsoup


【解决方案1】:

您可以在开发者模式下使用 chrome 找到这些数据,然后转到网络配置文件并刷新您的网站

然后转到 xhr 标签通过不同的链接查找您的特定数据,从图像中您可以看到我找到了 json 数据,现在您可以复制链接地址并使用 json 数据

import requests
res=requests.get("https://gdsapi.cnbc.com/market-mover/groupMover/SP500/CHANGE_PCT/BOTH/12.json?source=SAVED&delayed=false&partnerId=2")
data=res.json()
for d in data['rankedSymbolList']:
    for main_data in d['rankedSymbols']:
        print(main_data['symbolDesc'])

输出:

Seagate Technology PLC
Western Digital Corp
Occidental Petroleum Corp
Baker Hughes Co
Newmont Corporation
...

图片:

【讨论】:

  • 很明显,BeautifulSoup 功能强大,但它不能无所不能。使用 XHR 标签查找数据流、使用 Preview 并查看各种值令人大开眼界。谢谢你的回答。
  • 是的@TheBigDuck 我也从 stackoverflow 中学到了这一点,而且它易于使用!
猜你喜欢
  • 2015-04-06
  • 2013-03-24
  • 2012-12-17
  • 2013-02-03
  • 2016-07-02
  • 1970-01-01
  • 2014-10-08
  • 2018-04-10
  • 1970-01-01
相关资源
最近更新 更多