Python+cookies+请求---无法打开链接

Python+cookies+请求---无法打开链接,python,python-requests,Python,Python Requests,我需要使用python登录到一个网站,但是登录页面需要在请求头中使用sessionID cookie。使用Google developer工具和webclienthurl.it,我能够确定Web服务器可以接受的请求头所需的格式: Accept: */* Accept-Encoding: gzip, deflate Content-Length: 85 Content-Type: application/x-www-form-urlencoded Cookie: www_amsterdam-dan

我需要使用python登录到一个网站,但是登录页面需要在请求头中使用sessionID cookie。使用Google developer工具和webclienthurl.it,我能够确定Web服务器可以接受的请求头所需的格式:

Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Cookie: www_amsterdam-dance-event_nl_session=l9Abno8a1UyHPof%2BOyVqk8BxHjesGMi78z6Ot0ZXCCbI%2BxVKqjm30ALTfW%2FR7yKcDaqfEtFOyysTrjIeU8lU5ylv1TOlW6GLHY8jDfKKWSULKsUUJiTh92DbvkuYBuE6zt%2FeLs44lDna6Nz3uMCOaSARN7gCpoSz0TOcFaes8Hk9q6FikP1F9e%2B%2FsMwfUP0RTA0Rc5gJFyJPxHXNCdn%2BT49mhHYnzoIWVlxGHhlaEkZX1PPsYx1xq0BCgpb0WnPViuiZiBnQY2nz%2BBO4Uur0WPNfpSSWZg5Qxz79nYeChlRe16JhYjVOdaiUhnfEvp1jM7h%2BCdR6cUeatd7HGbftRCjINDrVuPeyB5ltVihStmzKEjOmWetI0xNuaNswsPIKKuo%2BV6JFNfdLcA6h3iy1K8o%2FA49tKGMP2rmGe4e5Jec%3Df395212364d1ffc80cf95ebf5abf3b40f9dc6441;
User-Agent: runscope/0.1

email=******%40beatswitch.com&login_token=545a46230b291&password=*****&submission=
我使用Python请求模块生成了以下请求:

POST /my-ade/login/ HTTP/1.1
Host: www.amsterdam-dance-event.nl
Content-Length: 85
Accept-Encoding: gzip,deflate
Accept: */*
User-Agent:  runscope/0.1
Connection: keep-alive
Cookie: www_amsterdam-dance-event_nl_session=l9Abno8a1UyHPof%2BOyVqk8BxHjesGMi78z6Ot0ZXCCbI%2BxVKqjm30ALTfW%2FR7yKcDaqfEtFOyysTrjIeU8lU5ylv1TOlW6GLHY8jDfKKWSULKsUUJiTh92DbvkuYBuE6zt%2FeLs44lDna6Nz3uMCOaSARN7gCpoSz0TOcFaes8Hk9q6FikP1F9e%2B%2FsMwfUP0RTA0Rc5gJFyJPxHXNCdn%2BT49mhHYnzoIWVlxGHhlaEkZX1PPsYx1xq0BCgpb0WnPViuiZiBnQY2nz%2BBO4Uur0WPNfpSSWZg5Qxz79nYeChlRe16JhYjVOdaiUhnfEvp1jM7h%2BCdR6cUeatd7HGbftRCjINDrVuPeyB5ltVihStmzKEjOmWetI0xNuaNswsPIKKuo%2BV6JFNfdLcA6h3iy1K8o%2FA49tKGMP2rmGe4e5Jec%3Df395212364d1ffc80cf95ebf5abf3b40f9dc6441;
Content-Type: application/x-www-form-urlencoded

login_token=545a46230b291&password=*****&email=******%40beatswitch.com&submission='
当我用hull.it加载前一个请求头时,一切都正常工作,Web服务器允许我登录,但在python中尝试使用相同参数的几乎相同的请求失败。在使用python的请求时,Web服务器会显示一个错误页面。任何帮助都将不胜感激。我迫切需要一个解决方案

编辑: 代码如下:

#Open the login page to get sessionID and login_token
loginURL = "https://www.amsterdam-dance-event.nl/my-ade/login/"
loginReq = session.get(loginURL)
loginSoup = BeautifulSoup(loginReq.text)
loginToken = loginSoup.find('input',attrs={'name':'login_token'})['value']
sessionID= loginReq.cookies['www_amsterdam-dance-event_nl_session']
cookie = 'www_amsterdam-dance-event_nl_session='+sessionID

#Construct the header and post it to the webserver
headers = {'Content-Length':'85','Accept':'*/*','User-Agent':' runscope/0.1','Content-Type':'application/x-www-form-urlencoded','Accept-Encoding':'gzip,deflate','Cookie':cookie}
payload = {'email':'*******@beatswitch.com','password':'********','login_token':loginToken,'submission':''}
loggedinReq = session.post(loginURL,headers=headers,data=payload)

多亏了我,我找到了解决办法。我试图手动处理请求头和cookie,而请求模块可以自己处理它们。因此,我从代码中删除了以下行,让请求完全控制,一切都按预期进行:

headers = {'Content-Length':'85','Accept':'*/*','User-Agent':' runscope/0.1','Content-Type':'application/x-www-form-urlencoded','Accept-Encoding':'gzip,deflate','Cookie':cookie}

在应用程序中添加python代码question@Faisal如果整个会话都是相同的,那么为什么要向其中添加cookie呢。他们不应该已经进去了吗?请运行代码从标题中删除用户指定的cookie,并告诉我发生了什么?@Md.Mohsin我觉得cookie和标题需要手动处理。在你的提示下,我先把饼干拿走了,但没用。然后我删除了所有的头,让请求处理头和cookies,现在就可以工作了!!但是标题的格式仍然和旧的一样。我猜不出为什么其中一个在工作而另一个没有。但它还是起作用了。。非常感谢您抽出时间!@费萨尔。伟大的很高兴我能帮忙:-