首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编程方式获得NASDAQ-100组件列表

以编程方式获得NASDAQ-100组件列表
EN

Stack Overflow用户
提问于 2021-07-22 09:16:49
回答 1查看 256关注 0票数 0

我正在尝试以编程方式获取包含在NASDAQ-100中的公司列表。我尝试过使用Beautiful Soup - bs4来抓取Nasdaq-100-Index-Components,但是到目前为止都没有成功。

如何获取此列表(股票代码和公司名称)?

代码语言:javascript
运行
AI代码解释
复制
s = requests.Session()
s.headers.update(
    {
        "Accept-Language":"en-US,en;q=0.9", 
    "Accept-Encoding":"gzip, deflate, br",
    "User-Agent":"Java-http-client/"
    }
)
r = s.get("https://www.nasdaq.com/market-activity/quotes/nasdaq-ndx-index")
soup = BeautifulSoup(r.content, "html.parser")
res = json.loads([x for x in soup.find("script", {"type": "application/json"})][0])

这只返回一个非常有限的列表,我怀疑这种幼稚的抓取并不能真正获得所有数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 09:29:21

由于数据是动态生成的,请转到chrome开发人员模式,转到网络选项卡,通过在框中搜索来查找数据,并刷新网站,现在您可以找到内容公司将数据作为json数据列出的链接

代码语言:javascript
运行
AI代码解释
复制
import requests
headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"}
res=requests.get("https://api.nasdaq.com/api/quote/list-type/nasdaq100",headers=headers)
main_data=res.json()['data']['data']['rows']


for i in range(len(main_data)):
    print(main_data[i]['companyName'])

输出:

代码语言:javascript
运行
AI代码解释
复制
Activision Blizzard, Inc. Common Stock
Adobe Inc. Common Stock
Advanced Micro Devices, Inc. Common Stock
Align Technology, Inc. Common Stock
..

图像

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68482251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档