Python使用请求登录

Python使用请求登录,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,我的目标是登录此网站: http://www.six-swiss-exchange.com/indices/data_centre/login.html 登录后,访问以下页面: http://www.six-swiss-exchange.com/downloads/indexdata/composition/close_smic.csv 为此,我使用的请求密码和电子邮件都是假的: import requests login_url = "http://www.six-swiss-excha

我的目标是登录此网站:

http://www.six-swiss-exchange.com/indices/data_centre/login.html
登录后,访问以下页面:

http://www.six-swiss-exchange.com/downloads/indexdata/composition/close_smic.csv
为此,我使用的请求密码和电子邮件都是假的:

import requests

login_url = "http://www.six-swiss-exchange.com/indices/data_centre/login_en.html"
dl_url = "http://www.six-swiss-exchange.com/downloads/indexdata/composition/close_smic.csv"

with requests.Session() as s:
    payload = {
        'username':'GG@gmail.com',
        'password':'SummerTwelve'
    }

    r1 = s.post(login_url, data=payload)
    r2 = s.get(dl_url, cookies=r1.cookies)
    print 'You are not allowed' in r2.content
脚本总是返回False。我正在使用Chrome和inspect检查要填写的表单,这是我手动登录时检查的结果:

    payload = {
        'viewFrom':'viewLOGIN',
        'cugname':'swxindex',
        'forward':'/indices/data_centre/adjustments_en.html',
        'referer':'/ssecom//indices/data_centre/login.html',
        'hashPassword':'xxxxxxx',
        'username':'GG@gmail.com',
        'password':'',
        'actionSUBMIT_LOGIN':'Submit'
   }

我尝试过这个,但没有结果,其中XXXXX是summer12的编码值。。。我显然不知道如何解决这个问题!也许通过提到标题?服务器可能会拒绝脚本请求?

我今天遇到了类似的问题,在我的情况下,问题是使用“post”命令启动网站交互。因此,我没有可以提供给网站的有效会话cookie,因此收到错误消息“您的浏览器不支持cookie”

解决方案是使用get加载登录页面一次,然后使用post发送登录数据:

我的登录数据对应于您的有效负载


这样,会话cookie由会话管理,您不必关心它。

它在哪里返回false?此处:在r2中打印“您不允许”。content您是否尝试添加用户代理?是的,我尝试在r1=c.postlogin\U url、data=payload、headers=headers和r2=c.getdl\U url中添加headers={'user-agent':'Mozilla/5.0'},headers=headers,cookies=r1.cookies问题是dl_url不受保护,但我需要进行身份验证,以便弹出一个下载窗口。。。不知道那里的请求是否合适。。。
s = requests.Session()

r = s.get(url_login)
r = s.post(url_login, data=logindata)