6

一部のデータをWebスクレイピングするためにmechanizeとbeautifulsoupを使用するコードがあります。コードはテストマシンでは正常に機能しますが、本番マシンは接続をブロックしています。私が得るエラーは次のとおりです。

urlopen error [Errno 10053] An established connection was aborted by the software in your host machine

私は同様の投稿を読みましたが、この正確なエラーを見つけることができません。スクレイプしようとしているサイトはHTTPSですが、HTTPサイトでも同じエラーが発生しました。私はPython2.6を使用しており、0.2.4を機械化します。

これはプロキシによるものですか、それともエラーが示すように、ローカルマシン上の何かによるものですか?私は、システムのプロキシを使用するために機械化するために書き込みました:

br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1')]
br.set_proxies({}) #will use system default proxy
page = br.open(url)
html = page.read()
soup = BeautifulSoup.BeautifulSoup(html)

繰り返しますが、これはすべて私のテストマシンで機能しますが、本番マシンではエラー10053が発生します。

4

1 に答える 1

2

ここでの問題は、ホスト ベースの IDS が接続を妨げていたことです。問題が解決しました。

Python スクリプトを HIDS 例外リストに追加しました。例外リストは、インターネットへの接続を許可したファイルのリストです。リストに追加されると、スクリプトを使用してネットワーク接続を取得でき、それ以上の問題は発生しませんでした. テスト マシンには HIDS クライアントがインストールされていませんでした。参考までに、両方にファイアウォールがありましたが、HIDS を備えていたのは 1 つ (実稼働マシン) だけでした。

HIDS は、ホスト ベースの侵入検知システムの略です。ネットワーク セキュリティ チームが HIDS を非表示にした場合、どこにあるのかわからなくなる可能性があります。また、見つけたとしても、無効にすることはできません。スクリプトに例外を追加できるかどうか、セキュリティ チームに尋ねることができます。HIDS を回避するもう 1 つの卑劣な方法は、(Py2EXE を使用して) スクリプトを exe にビルドし、作成した実行可能ファイルの名前を HIDS 例外リストに既にある名前に変更することです。名前を変更するのに適しているのはブラウザです。したがって、Firefox がインターネット アクセスを許可されている場合は、exe の名前を firefox.exe に変更します。

于 2011-03-11T15:18:25.313 に答える