gpt4 book ai didi

python - 使用 python 从使用 javascript 显示信息的网站下载数据

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:15 24 4
gpt4 key购买 nike

我通常使用以下模板脚本从网站下载数据:

import urllib.request as web
from bs4 import BeautifulSoup
...
url_to_visit ='http://www.website-link-to-download-data'
source_code = web.urlopen(url_to_visit).read()
source_code = ''.join(map(chr, source_code)
source_code = source_code.split('\n')
## then further process the lines returned in `source_code` as needed

但有时我会遇到非常困难的网站。

考虑该网站:https://www.spice-indices.com/idp2/Main#home 。假设在第一个表Intraday Alerts - United States 中,我想通过 Python 脚本下载单击 SP TMI 选项卡时显示的信息。

我查看了上面 splitSource 的输出,但我不知道如何提取我想要的信息。它似乎使用 Javascript 后端来显示信息。有人可以给我任何指示或建议吗?

我使用的是 Python 3.x。

最佳答案

当您激活“SP TMI”选项卡时,会有一个 POST 请求发送到“intraday-announcements.json”端点 - 在代码中模拟该请求并解析 JSON 响应。

使用 requests 的示例工作代码:

import requests

with requests.Session() as session:
session.get("https://www.spice-indices.com/idp2/Main#home")

response = session.post("https://www.spice-indices.com/idp2/intraday/effectivedate/11-14-2015/intraday-announcements.json", data={
"start": "0",
"limit": "10",
"indexKey": "SPUSA-TMI-USDUF--P-US----"
})

data = response.json()["widget_data"]
for item in data:
print(item["EVENT_NAME"])

打印:

Dividend
Weekly Share Change
Special Dividend
Merger/Acquisition
Merger/Acquisition
Drop
Merger/Acquisition
Merger/Acquisition
Drop
Identifier Changes

请注意,生效日期实际上位于 URL 内,请参阅 11-14-2015 部分。

关于python - 使用 python 从使用 javascript 显示信息的网站下载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com