0

私のスクリプトの1つは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

FiddlerまたはWireSharkを使用して、HTTPレベルで何が起こっているかを確認できます。

アクセスしようとしているマシンへのリクエストがマシンからブロックされているかどうかも確認する価値があります。通常のブラウザ(独自のHTMLフォームを使用)とMechanizeが使用するHTTPライブラリを使用して、リクエストを手動で作成できるかどうかを確認します。Fiddlerもこれを行うのに役立ちます。

于 2011-11-26T15:42:33.713 に答える