为什么http请求挂在我的python脚本中?

时间:2011-11-26 15:17:36

标签: python http urllib2 mechanize mechanize-python

我的一个脚本在XP系统上完美运行,但确切的脚本挂在2003系统上。我总是使用mechanize来发送http请求,这是一个例子:

import socket, mechanize, urllib, urllib2

socket.setdefaulttimeout(60) #### No idea why it's not working

MechBrowser = mechanize.Browser()
Header = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)', 'Referer': 'http://www.porn-w.org/ucp.php?mode=login'}
Request = urllib2.Request("http://google.com", None, Header)
Response = MechBrowser.open(Request)

我认为我的代码没有任何问题,但每次遇到某个特定网址的某个http POST请求时,它都挂在那台2003计算机上(仅限该网址)。可能是这一切的原因以及我应该如何调试?

顺便说一下,脚本可以运行到几个小时前。并且没有更改设置。

1 个答案:

答案 0 :(得分:2)

您可以使用FiddlerWire Shark来查看HTTP级别的情况。

还有必要检查机器是否已被阻止向您尝试访问的机器发出请求。使用常规浏览器(使用您自己的HTML表单)和Mechanize使用的HTTP库,看看您是否可以手动构建请求。提琴手也可以帮助你做到这一点。