簡體   English   中英

Python urllib.request.urlopen()返回錯誤10061?

[英]Python urllib.request.urlopen() returning error 10061?

我正在嘗試下載頁面的HTML(在這種情況下是http://www.google.com ),但我收到了錯誤消息。 這是我的交互式提示會話:

Python 3.2.2 (default, Sep  4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> import urllib.request
>>> html = urllib.request.urlopen("http://www.google.com")
Traceback (most recent call last):
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 1136, in
 do_open
    h.request(req.get_method(), req.selector, req.data, headers)
  File "\\****.****.org\myhome\python\lib\http\client.py", line 964, in req
uest
    self._send_request(method, url, body, headers)
  File "\\****.****.org\myhome\python\lib\http\client.py", line 1002, in _s
end_request
    self.endheaders(body)
  File "\\****.****.org\myhome\python\lib\http\client.py", line 960, in end
headers
    self._send_output(message_body)
  File "\\****.****.org\myhome\python\lib\http\client.py", line 805, in _se
nd_output
    self.send(msg)
  File "\\****.****.org\myhome\python\lib\http\client.py", line 743, in sen
d
    self.connect()
  File "\\****.****.org\myhome\python\lib\http\client.py", line 721, in con
nect
    self.timeout, self.source_address)
  File "\\****.****.org\myhome\python\lib\socket.py", line 404, in create_c
onnection
    raise err
  File "\\****.****.org\myhome\python\lib\socket.py", line 395, in create_c
onnection
    sock.connect(sa)
socket.error: [Errno 10061] No connection could be made because the target machi
ne actively refused it

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 138, in
urlopen
    return opener.open(url, data, timeout)
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 369, in
open
    response = self._open(req, data)
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 387, in
_open
    '_open', req)
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 347, in
_call_chain
    result = func(*args)
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 1156, in
 http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "\\****.****.org\myhome\python\lib\urllib\request.py", line 1139, in
 do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 10061] No connection could be made
because the target machine actively refused it>
>>>

我最好的猜測是我的網絡的防火牆阻止了連接(大多數/所有80以外的端口被阻止)。 不過,我不明白為什么; 在端口80上沒有Python連接? 有誰知道發生了什么?

urllib從Internet Explorer獲取代理設置,通常位於Tools->Internet Options->Connections->Lan Settings

如果你有代理,請確保它在IE中是正確的,或者在使用urllib時設置它 如果您不使用代理進行瀏覽,請確保IE中的代理設置為空。

幾個小時之后我一直在努力解決這個問題,直到我意識到我曾經安裝的第三方應用程序改變了IE中的設置,而我在沒有代理的情況下在Firefox中愉快地瀏覽。


另一個解決方案是在此鏈接中顯示如何強制urllib忽略IE的代理設置

該錯誤來自操作系統級別,與Python無關。 它與任何編程語言都是一樣的。

除非您自己解決防火牆問題,否則請與您的網絡管理部門聯系,了解問題所在。 如果您需要HTTP代理,則可以為urllib配置一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM