Python:从需要登录的网站下载历史数据的csv文件

时间:2019-06-07 11:51:31

标签: python html beautifulsoup request

在广泛的网络搜索之后,我不知道如何解决我的问题。即,我想从需要登录的Sunnyportal网站下载历史数据的每日csv文件。这是登录页面:https://www.sunnyportal.com/Login

enter image description here

登录后,下面显示了一个页面,将从该页面下载csv。如您所见,这是“分析”页面(从左侧选择)。在大图下方,有一个日期选择器来选择年份的日期。右下角有一个下载按钮。通过单击此按钮,将下载该特定日期的csv。

enter image description here

我的目标是多年内每天(或也可以定期)下载csv。我知道我在下面的工作仍远未达到目标,但我不知道如何进行。

import requests

s = requests.Session()
site_url = r'https://www.sunnyportal.com/Login'
s.get(site_url)
s.post(site_url, data={'_username': 'myusername', '_password': 'mypassword'})

file_url =r'https://www.sunnyportal.com/FixedPages/AnalysisTool.aspx'
s.get(file_url)

1 个答案:

答案 0 :(得分:0)

当我尝试登录时,使用的参数看起来像这样(您可以在Chrome或Firefox中使用F12开发人员控制台来查看POST请求)

ctl00$ContentPlaceHolder1$Logincontrol1$txtUserName = my@email.com
ctl00$ContentPlaceHolder1$Logincontrol1$txtPassword = test

我首先虽然将参数隐藏在某些javascript编码的后面并即时生成,但似乎这些是发帖请求中的 real 参数,名称晦涩难懂。

如果这可行,那么您必须找出网站如何识别已登录的用户。这可能是cookie,URL中的某种会话ID或http请求标头。然后,您必须模仿它。