我正在尝试使用urllib2.urlopen
(实际上,我正在使用mechanize
,但这是mechanize
调用的方法)获取页面当我获取页面时,我收到不完整的响应;页面被截断。但是,如果我访问页面的非 HTTPS 版本,我会得到完整的页面。
我在 Arch Linux ( 3.5.4-1-ARCH x86_64
) 上。我正在跑步openssl 1.0.1c
。这个问题出现在我拥有的另一台 Arch Linux 机器上,但在使用 Python 3 ( 3.3.0
) 时不会出现。
这个问题似乎与urllib2 not retrieving entire HTTP response有关。
我在唯一可以让我使用 urllib2 ( Py I/O ) 的在线 Python 解释器上对其进行了测试,它按预期工作。这是代码:
import urllib2
u = urllib2.urlopen('https://wa151.avayalive.com/WAAdminPanel/login.aspx?ReturnUrl=%2fWAAdminPanel%2fprivate%2fHome.aspx')
print u.read()[-100:]
最后几行应该包含通常的</body></html>
.
当我在我的机器上尝试urllib.urlretrieve
时,我得到:
ContentTooShortError: retrieval incomplete: got only 11365 out of 13805 bytes
我无法urlretrieve
在在线解释器上进行测试,因为它不允许用户写入临时文件。晚上晚些时候,我将尝试从我的机器上获取 URL,但来自不同的位置。