[英]Python urlopen connection aborted - urlopen error [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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.