0

我的一个脚本在 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)

我认为我的代码没有任何问题,但是每次针对特定 url 的某个 http POST 请求时,它都会挂在 2003 年的计算机上(仅在该 url 上)。这一切可能是什么原因,我应该如何调试?

顺便说一句,直到几个小时前,脚本都可以正常运行。并且没有更改任何设置。

4

1 回答 1

2

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

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

于 2011-11-26T15:42:33.713 回答