首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从纳斯达克网站获得数据

无法从纳斯达克网站获得数据
EN

Stack Overflow用户
提问于 2022-01-08 04:33:26
回答 1查看 139关注 0票数 0

我下面的代码下载网站https://www.nasdaq.com/market-activity/stocks/mrtn/earnings。我对表中的数据感兴趣,比如“季度收益惊喜金额”表。从Chrome上的开发者工具中,我可以看到数据在标签中,比如:<td class="earnings-forecast__cell">1.13</td>,但是当使用下面的代码下载时,标签中的数字就消失了。只有<td class="earnings-forecast__cell"> </td>

你能帮我修一下吗?谢谢,HHC

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup as soup

header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
  'referer': 'https://www.nasdaq.com/market-activity/stocks/mrtn/earnings'
  
}
# Send a get request to server:
url = 'https://www.nasdaq.com/market-activity/stocks/mrtn/earnings'
html = requests.get(url=url,headers=header)
# check if request is received
html.status_code  #Successful responses (200–299)

data=soup(html.content,'lxml')
print(type(data))
# print(data)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-08 05:05:47

如果您尝试查看页面源,您可以确定您感兴趣的表没有任何值。这表示表中的数据是通过JavaScript呈现的。

在检查从浏览器的"Network“选项卡发送的源和请求时,我们可以看到来自JS脚本的xhr请求被发送,并返回您要查找的数据。脚本发送请求的端点是:https://api.nasdaq.com/api/company/MRTN/earnings-surprise

尝尝这个,

代码语言:javascript
复制
import requests

header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
    'referer': 'https://www.nasdaq.com/market-activity/stocks/mrtn/earnings'
}

url = 'https://api.nasdaq.com/api/company/MRTN/earnings-surprise'
response = requests.get(url = url, headers = header)

if response.status_code == 200:
    print(response.json())
else:
    print("Failed", response.status_code)

如果您使用Chrome,过滤请求"Fetch/XHR",您应该能够查看请求。(使用打开的“网络”选项卡刷新一次页面)

编码愉快!

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

https://stackoverflow.com/questions/70629619

复制
相关文章

相似问题

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