Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抓取一个使用cookies并使用python登录的aspx网站_Python_Http_Pdf_Cookies_Python Requests - Fatal编程技术网

抓取一个使用cookies并使用python登录的aspx网站

抓取一个使用cookies并使用python登录的aspx网站,python,http,pdf,cookies,python-requests,Python,Http,Pdf,Cookies,Python Requests,我想从snl.com上搜一些PDF文件。我有付费订阅和有效的登录凭据 其中一个pdf文件的url为: 手动登录并访问上述url后,在浏览器中呈现pdf时,地址栏中的实际url为: 当我访问被重定向到的url时https://www.snl.com/interactivex/default.aspx -登录页面 我在SO中阅读了几个关于Python请求的线程,并尝试了下面的代码来通过登录页面并处理cookies,但我仍然不断得到登录页面作为响应,其中说:如果您已经是注册SNL用户,请使用您的电子邮

我想从snl.com上搜一些PDF文件。我有付费订阅和有效的登录凭据

其中一个pdf文件的url为:

手动登录并访问上述url后,在浏览器中呈现pdf时,地址栏中的实际url为:

当我访问被重定向到的url时https://www.snl.com/interactivex/default.aspx -登录页面

我在SO中阅读了几个关于Python请求的线程,并尝试了下面的代码来通过登录页面并处理cookies,但我仍然不断得到登录页面作为响应,其中说:如果您已经是注册SNL用户,请使用您的电子邮件地址和密码登录

输出:

2014-06-26 13:04:54,555 DEBUG Added an stderr logging handler to logger: requests.packages.urllib3
2014-06-26 13:04:54,605 INFO Starting new HTTPS connection (1): www.snl.com
2014-06-26 13:04:55,943 DEBUG "GET /interactivex/default.aspx HTTP/1.1" 302 152
2014-06-26 13:04:56,282 DEBUG "GET /interactivex/LoginCookieCheck.aspx HTTP/1.1" 302 143
2014-06-26 13:04:56,650 DEBUG "GET /interactivex/default.aspx HTTP/1.1" 200 None
2014-06-26 13:04:56,865 INFO Starting new HTTP connection (1): www.snl.com
2014-06-26 13:04:57,447 DEBUG "GET /interactivex/file.aspx?Id=17670354&KeyFileFormat=PDF HTTP/1.1" 302 143
2014-06-26 13:04:57,788 DEBUG "GET /InteractiveX/default.aspx HTTP/1.1" 302 162
2014-06-26 13:04:58,151 DEBUG "GET /InteractiveX/default.aspx HTTP/1.1" 200 None
我不知道如何解释这个输出,但当我在谷歌上搜索响应代码200时,我知道它的意思是OK


但是,当我打印pdf_response.text时,它会再次返回登录页面。

您是否尝试先在登录页面上执行GET操作,以设置登录后处理程序正在查找的cookies?@Martijn这就是您所说的吗?s=requests.sessions.headers.update{'x-test':'true'}s.get,headers={'x-test2':'true'}@MartijnPieters我在一篇SO文章中找到了上述代码。但这对我没有好处。请让我知道是否有可能的方法。我不知道是否有任何方法可以做到这一点;可能有,但这完全取决于服务器以及它如何处理会话、登录和请求中的特定头。因为这个网站需要一个我没有的登录名,所以我无法复制或解决这个特定的问题。我理解。不幸的是,我不允许共享凭据。请您指导我如何在使用浏览器中的凭据登录时为您获取所需信息?
2014-06-26 13:04:54,555 DEBUG Added an stderr logging handler to logger: requests.packages.urllib3
2014-06-26 13:04:54,605 INFO Starting new HTTPS connection (1): www.snl.com
2014-06-26 13:04:55,943 DEBUG "GET /interactivex/default.aspx HTTP/1.1" 302 152
2014-06-26 13:04:56,282 DEBUG "GET /interactivex/LoginCookieCheck.aspx HTTP/1.1" 302 143
2014-06-26 13:04:56,650 DEBUG "GET /interactivex/default.aspx HTTP/1.1" 200 None
2014-06-26 13:04:56,865 INFO Starting new HTTP connection (1): www.snl.com
2014-06-26 13:04:57,447 DEBUG "GET /interactivex/file.aspx?Id=17670354&KeyFileFormat=PDF HTTP/1.1" 302 143
2014-06-26 13:04:57,788 DEBUG "GET /InteractiveX/default.aspx HTTP/1.1" 302 162
2014-06-26 13:04:58,151 DEBUG "GET /InteractiveX/default.aspx HTTP/1.1" 200 None