通过Python调用(源站点上的javascript弹出窗口)从web下载文件

2024-09-30 22:17:02 发布

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

我想实现两件事:

  1. 从该站点自动下载csv文件https://www.investing.com/equities/assura-group-historical-data

  2. 从python调用中自动选择日期范围

我怎样才能做到?我认为这是一种网络垃圾,但它不是真正的网络垃圾,它是更自动化的文件下载

问题是每当我点击下载按钮时就会弹出一个javascript窗口。 所以我在努力寻找一个自动化的解决方案

非常感谢你的帮助

更新: 我遵循下面的建议,但(因为我是一个非常初学者),我停在这里,我不知道如何建立与所有信息的请求。这是我从浏览器中得到的:

方法 岗位

网址https://www.investing.com/instruments/HistoricalDataAjax

请求头 主持人:www.investing.com 用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10.14;房车:69.0)壁虎/20100101火狐/69.0 接受:文本/纯文本,/;q=0.01 接受语言:en-US,en;q=0.5 接受编码:gzip、deflate、br 内容类型:application/x-www-form-urlencoded X-request-With:XMLHttpRequest 内容长度:171 连接:保持活动 引用者:https://www.investing.com/equities/assura-group-historical-data 饼干:

请求正文 电流id=7351&;smlID=1160667&;标题=AGRP+历史+数据&;st\ U日期=01%2F01%2F2001&;结束日期=09%2F26%2F2019&;间隔秒=每天;sort\u col=日期;排序顺序=描述(&O);动作=历史数据

这是创建python调用并使下载自动化所需的正确信息吗? 我怎么把它放在一起

请记住,在我选择日期范围之后,仍然有一个供下载的弹出窗口,当触发此事件时,调试器中不会显示任何内容

Please check this screenshot 谢谢

[b]日期2[/b] 尝试此方法但不起作用:

import requests
headers = {'Host': 'www.investing.com','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0', 'Accept': 'text/plain, */*; q=0.01','Accept-Language': 'en-US,en;q=0.5','Accept-Encoding': 'gzip, deflate, br','Content-Type': 'application/x-www-form-urlencoded','X-Requested-With': 'XMLHttpRequest','Content-Length': '171','Connection': 'keep-alive','Referer': 'https://www.investing.com/equities/assura-group-historical-data'}
payload = {'curr_id':'7351','smlID':'1160667','header':'AGRP+Historical+Data','st_date':'01%2F01%2F2001','end_date':'09%2F26%2F2019','interval_sec':'Daily','sort_col':'date','sort_ord':'DESC','action':'historical_data}
session = requests.Session()
session.post('https://www.investing.com/instruments/HistoricalDataAjax',headers=headers,data=payload)

Tags: httpscom内容datawwwgroupsorten
1条回答
网友
1楼 · 发布于 2024-09-30 22:17:02

您可以使用浏览器的开发工具(通常按F12)、Network选项卡找到一些信息

然后可以看到如何构建请求,以何种格式指定日期,并且可以在Python中复制它

我通常使用requests库进行HTTP调用

相关问题 更多 >