Python urlopen连接中止 – urlopen错误[Errno 10053]

我有一些代码使用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.

最佳答案
这里的问题是基于主机的IDS阻止了连接.问题解决了.

我将我的python脚本添加到HIDS例外列表中.例外列表是我允许连接到互联网的文件列表.一旦它被添加到列表中,我就能够通过脚本获得网络连接,并且没有其他问题.测试机器没有安装HIDS客户端,这就是为什么它允许我说话.仅供参考,两者都有防火墙,但只有一台(生产机器)有HIDS.

HIDS代表基于主机的入侵检测系统.如果网络安全团队让您无法看到HIDS,您可能不知道在哪里可以找到它.此外,即使您找到它,您也无法禁用它.您可以询问您的安全团队是否可以为您的脚本添加例外.围绕HIDS的另一个偷偷摸摸的方法是将您的脚本构建到exe(使用Py2EXE)并将您创建的可执行文件重命名为HIDS例外列表中已有的内容.一个很好的将其重命名为您的浏览器,因此如果允许Firefox访问Internet,请将您的exe重命名为firefox.exe.

转载注明原文:Python urlopen连接中止 – urlopen错误[Errno 10053] - 代码日志