<p>可能是网站不支持HTTP基本身份验证。因此,您需要将登录表单上显示的字段的表单数据值提交给登录.aspx使用httppost请求的url。例如:</p>
<pre><code>>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("http://httpbin.org/post", data=payload)
</code></pre>
<p>见<a href="http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests" rel="nofollow">http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests</a></p>
<p>另外,可能登录表单页面正在用cookies响应。那样的话,你需要提出两个请求。一个用于检索登录表单页面(和cookies)…第二个请求提交表单数据和cookie数据。见<a href="http://docs.python-requests.org/en/latest/user/quickstart/#cookies" rel="nofollow">http://docs.python-requests.org/en/latest/user/quickstart/#cookies</a></p>
<p>另外,请确保在第二个请求中提交的隐藏表单值与第一个响应中表单中的值匹配。在</p>
<p>更新:</p>
<p>登录表单正在设置cookies,以便模拟正常的浏览器登录,您应该在第二个请求中返回这些cookies。在</p>
<p>您的第一个请求如下:</p>
^{pr2}$
<p>您可以使用response objects<code>cookies</code>属性访问cookies</p>
<pre><code>>>> r1.cookies
<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='ASP.NET_SessionId', value='plhmrq3syuqgcyab1g52nq55', port=None, port_specified=False, domain='v4.fitnessandlifestylecentre.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False), Cookie(version=0, name='SDAWA_culture', value='en-US', port=None, port_specified=False, domain='v4.fitnessandlifestylecentre.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=1392999422, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]>
</code></pre>
<p>您的第二个请求应该像这样提交cookies(假设您的凭证/表单数据在一个名为<code>payload</code>的dict中)</p>
<pre><code>r2 = requests.post(url, data=payload, cookies=r1.cookies)
</code></pre>