簡體   English   中英

IOError:[Errno套接字錯誤] [Errno 11004] getaddrinfo嘗試打開URL時失敗

[英]IOError: [Errno socket error] [Errno 11004] getaddrinfo failed when I'm trying to open a url

我正在嘗試使用Python在我的新工作中使用Web進行抓取,使用的是我之前2個工作中使用的相同方法,只是現在不工作。 這是代碼-

import urllib
from urllib import urlopen
url = 'http://www.google.com'
html = urllib.urlopen(url).read()

錯誤是

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    html = urllib.urlopen(url).read()
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\urllib.py", line 87, in urlopen
    return opener.open(url)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\urllib.py", line 213, in open
    return getattr(self, name)(url)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\urllib.py", line 350, in open_http
    h.endheaders(data)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\httplib.py", line 1053, in endheaders
    self._send_output(message_body)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\httplib.py", line 897, in _send_output
    self.send(msg)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\httplib.py", line 859, in send
    self.connect()
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\httplib.py", line 836, in connect
    self.timeout, self.source_address)
  File "C:\Users\NREARDO2\AppData\Local\Continuum\Anaconda2\lib\socket.py", line 557, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno 11004] getaddrinfo failed

是因為我在一家企業集團工作,並且有安全協議阻止我執行此操作,還是有另一種解決方法?

根據Windows套接字錯誤代碼-MSDN ,錯誤11004表示:

WSANO_DATA 11004

有效名稱,沒有所請求類型的數據記錄。

所請求的名稱有效,並且已在數據庫中找到,但是沒有解析正確的關聯數據。 通常的示例是使用DNS(域名服務器)的主機名到地址的轉換嘗試(使用gethostbynameWSAAsyncGetHostByName )。 返回MX記錄,但不返回A記錄-表示主機本身存在,但不能直接訪問。

用人的術語來說,這意味着您的主機名 (從URL中提取) 是有效的格式,但不能解析為有效的IP。

在其他問題( 12345 ),人報告有這個問題,如果他們:

  • 名稱已映射到其hosts文件中的無效IP(例如0.0.0.0
  • 不正確地設置URL格式(例如忘記file:///的第三個斜杠或誤輸入IP)
  • 使用無法解析的DNS名稱
  • 使http_proxy環境變量或注冊表代理設置指向不存在的主機(如果代理設置或代理存在其他問題,則將導致另一個錯誤,而不是此錯誤)

在您的情況下,2)(也可能是4)也是沒有問題的,因此請檢查其他選項:是否可以使用nslookup解析名稱,以及該名稱 是否存在於hosts

暫無
暫無

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

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