Соединение Python urlopen прервано - ошибка urlopen [Errno 10053] - PullRequest
6 голосов
/ 09 марта 2011

У меня есть код, который использует mechanize и beautifulsoup для очистки некоторых данных через Интернет.Код отлично работает на тестовой машине, но производственная машина блокирует соединение.Я получаю ошибку:

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

Я прочитал похожие посты и не могу найти эту точную ошибку.Сайт, который я пытаюсь очистить, - это HTTPS, но у меня также возникала такая же ошибка с сайтом HTTP.Я использую Python 2.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.

1 Ответ

2 голосов
/ 11 марта 2011

Проблема здесь заключалась в том, что IDS на хосте не позволяла установить соединение.Проблема решена.

Я добавил свой скрипт Python в список исключений HIDS.Список исключений представлял собой список файлов, которые я разрешил подключать к Интернету.После того, как он был добавлен в список, я смог получить сетевое соединение со сценарием, и у меня больше не было проблем.На тестовой машине не был установлен клиент HIDS, поэтому он позволял мне общаться.К вашему сведению, у обоих были брандмауэры, но только у одного (производственная машина) была HIDS.

HIDS обозначает систему обнаружения вторжений на основе хоста.Если команда сетевой безопасности сделала HIDS невидимой для вас, вы можете не знать, где ее найти.Кроме того, даже если вы найдете его, вы не сможете его отключить.Вы можете спросить свою команду безопасности, могут ли они добавить исключение для вашего сценария.Другой хитрый способ обойти HIDS - встроить ваш скрипт в исполняемый файл (используя Py2EXE) и переименовать созданный вами исполняемый файл во что-то, что уже есть в списке исключений HIDS.Хорошим вариантом будет переименовать его в ваш браузер, поэтому, если Firefox разрешен доступ в Интернет, переименуйте ваш exe-файл в firefox.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...