请求不会从网页获取文本?

2024-10-02 02:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个网页上得到波动率的价值。在

我使用的代码:

raw_page = requests.get("https://www.nseindia.com/live_market/dynaContent/live_watch/vix_home_page.htm").text
soup = BeautifulSoup(raw_page, "lxml")
vix = soup.find("span",{"id":"vixIdxData"})
print(vix.text)

这给了我:

' '

如果我看到波动率

^{pr2}$

在网站上元素有文本

<span id="vixIdxData" style=" font-size: 1.8em;font-weight: bold;line-height: 20px;">15.785/span>

15.785值是我希望通过使用请求获得的值。在


Tags: 代码textidlive网页getrawpage
2条回答

您要查找的数据在页面源中不可用。并且requests.get(...)只获取页面源代码,而不包含通过JavaScript动态添加的元素。但是,您仍然可以使用requests模块获得它。在

在“网络”选项卡的“开发人员工具”中,您可以看到一个名为VixDetails.json的文件。正在向https://www.nseindia.com/live_market/dynaContent/live_watch/VixDetails.json发送一个请求,该请求以JSON的形式返回数据。在

enter image description here

您可以使用requests模块的内置.json()函数来访问它。在

r = requests.get('https://www.nseindia.com/live_market/dynaContent/live_watch/VixDetails.json')
data = r.json()
vix_price = data['currentVixSnapShot'][0]['CURRENT_PRICE']
print(vix_price)
# 15.7000

在web浏览器中打开页面时,文本(例如,15.785)通过getIndiaVixData.js脚本插入到span元素中。在

在Python中使用requests获取页面时,只检索HTML代码,不进行JavaScript处理。因此,span元素保持为空。在

仅仅通过使用requests解析页面的HTML代码是不可能得到这些数据的。在

相关问题 更多 >

    热门问题