我想使用python下载和解析网页,但要访问它我需要设置几个cookie.因此,我需要首先通过https登录网页.登录时刻涉及向/login.php发送两个POST参数(用户名,密码).在登录请求期间,我想从响应头中检索cookie并存储它们,以便我可以在请求中使用它们来下载网页/data.php.
我怎么能在python中做到这一点(最好是2.6)?如果可能的话我只想使用内置模块.
之前已经在这里提出过这个问题.对于提问者和回答者来说,接受的答案可能是显而易见的 - 但不是对我而言.我已就上述问题发表评论以获得更多精确度,但没有回应.我还向meta Q&A索取了关于如何从他们的坟墓中提出问题的帮助,也没有得到答案.
上面问题的答案是:
从客户端的角度来看,OpenID登录与任何其他基于Web的登录非常相似.客户端没有定义的协议; 它是一个普通的Web会话,根据您的OpenID提供程序而有所不同.出于这个原因,我怀疑是否存在任何此类库.您可能需要自己编写代码.
我知道如何使用Urllib2模块登录使用Python的网站.但这还不足以让我猜测如何对OpenID进行身份验证.
我实际上是想以json格式获取我的StackOverflow收件箱,我需要登录.
有人可以提供一个简短的介绍或链接到一个很好的教程如何做到这一点?
如果我使用urllib加载此URL(https://www.fundingcircle.com/my-account/sell-my-loans/),我会收到400状态错误.
例如,以下内容返回400错误
>>> import urllib
>>> f = urllib.urlopen("https://www.fundingcircle.com/my-account/sell-my-loans/")
>>> print f.read()
Run Code Online (Sandbox Code Playgroud)
但是,如果我将网址复制并粘贴到我的浏览器中,我会看到一个网页,其中包含我想要查看的信息.
我尝试过尝试,除了,然后阅读错误.但返回的数据只是告诉我该页面不存在.例如
import urllib
try:
f = urllib.urlopen("https://www.fundingcircle.com/my-account/sell-my-loans/")
except Exception as e:
eString = e.read()
print eString
Run Code Online (Sandbox Code Playgroud)
为什么Python不能加载页面?