2016-11-22 6 views
0

私は以前の2つのジョブで使用したのと同じ方法で私に新しいジョブでPythonを使って擦り傷をかけようとしています今は動作していません。ここではコード -IOError:[Errnoソケットエラー] [Errno 11004] URLを開こうとしたときにgetaddrinfoが失敗しました

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

だとエラーがthis-

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 

である私はコングロマリットで働いているとこれをやってから私を防止するセキュリティプロトコルがありますかに別の方法がありますので、このですそれを回しますか?

+0

は、スレッドの下に参照してください - あなたは、プロキシ属性 を渡す必要がありhttps://stackoverflow.com/questions/7334199/getaddrinfo-failed-what-does-that-mean/48788583#48788583 – Vinay

答えて

0

Windows Sockets Error Codes - MSDNによると、エラー11004が意味:人間の言葉で

WSANO_DATA 11004

Valid name, no data record of requested type.

The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a host name-to-address translation attempt (using gethostbyname or WSAAsyncGetHostByName) which uses the DNS (Domain Name Server). An MX record is returned but no A record—indicating the host itself exists, but is not directly reachable.

を、これはホスト名(URLから抽出される)が有効なフォーマット単位であるだけには解決できないことを意味し有効なIP。他の質問(12345)で

彼らならば、人々はこの問題を持っ報告:

  • が自分hostsファイル(0.0.0.0のような)不正なIPにマッピングされた名前を持っています
  • 形式URLが間違っています(file:///の3番目のスラッシュを忘れている、またはIPをミスタイプしているなど)
  • 解決できないDNS名を使用
  • があなたに

(プロキシ設定またはプロキシと他の問題がある場合、彼らは別のエラーではなく、この1につながる)存在しないホストを指すhttp_proxy環境変数またはレジストリproxy settingsを持っていますケース2)(そしておそらく4)も疑問に思っているので、他のものをチェックしてください:resolve the name with nslookupif it's present in hostsの場合

+0

私は何」は以下のいませんよここで言います。これを回避する方法を決定するためのコードや手順を私に教えてください。 –

+0

こんにちは、あなたに言っている:あなたのネームサーバーをチェックしてください。あなたの箱に設定上の問題があるようです。例えば。 cmdからnslookupをgoogleに実行することで – frlan

+0

@NickReardon私はいくつかのハウツーリンクを追加しました。要点は次のとおりです。問題はコードの外部にあり、マシンや企業のネットワーク構成によって非常によく発生する可能性があります。具体的に何が間違っているのか、それについて何ができるのかを知るために、それを診断することができます。 –

関連する問題