我试图从一个网页上得到波动率的价值。在
我使用的代码:
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
值是我希望通过使用请求获得的值。在
您要查找的数据在页面源中不可用。并且
requests.get(...)
只获取页面源代码,而不包含通过JavaScript动态添加的元素。但是,您仍然可以使用requests
模块获得它。在在“网络”选项卡的“开发人员工具”中,您可以看到一个名为
VixDetails.json
的文件。正在向https://www.nseindia.com/live_market/dynaContent/live_watch/VixDetails.json
发送一个请求,该请求以JSON的形式返回数据。在您可以使用
requests
模块的内置.json()
函数来访问它。在在web浏览器中打开页面时,文本(例如,15.785)通过getIndiaVixData.js脚本插入到
span
元素中。在在Python中使用
requests
获取页面时,只检索HTML代码,不进行JavaScript处理。因此,span元素保持为空。在仅仅通过使用
requests
解析页面的HTML代码是不可能得到这些数据的。在相关问题 更多 >
编程相关推荐