[英]downloading data using python from a website that uses javascript to display information
我通常使用以下模板脚本从网站下载数据:
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后端显示信息。 有人可以给我任何指示或建议吗?
我正在使用Python3.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
部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.