web-dev-qa-db-ja.com

urllib2.URLError:<urlopenエラー[Errno 11004] getaddrinfoが失敗しました>

実行した場合:

urllib2.urlopen('http://google.com')

別のURLを使用しても同じエラーが発生します。

私のコンピューターまたはルーターでファイアウォールが実行されておらず、インターネット(ブラウザーから)は正常に動作しています。

15
quilby

私の場合の問題は、プロキシがない場合に、一部のインストールで、ある時点で私のマシンに環境変数http_proxyが定義されたことでした。

http_proxy環境変数を削除すると、問題が修正されました。

5
Declan Brennan

このサイトのDNSレコードは、Pythonが特殊な方法でDNSルックアップに失敗したものです。エントリは見つかりましたが、関連付けられたIPアドレスがゼロです。(nslookupで確認してください。)したがって、 11004、WSANO_DATA

サイトの先頭に「www」を付けます。リクエストを再試行してください。 (nslookupを使用して、結果が異なることも確認します。)

これは、 Python Requests module を使用した場合と基本的に同じように失敗します。

requests.exceptions.ConnectionError:HTTPConnectionPool(Host = '...'、port = 80):次のURLで最大再試行回数を超えました:/(原因:[Errno 11004] getaddrinfoが失敗しました)

4
JimB

おそらくプロキシを使用する必要があります。通常のブラウザ設定を確認して、どれかを確認してください。 企業ファイアウォールの背後からurllib2を使用してWebサイトを開く-11004 getaddrinfoが失敗した 解決策に関する同様の問題を見てください。

1
xeor

ネットワークレベルの問題の場合、これは役に立たない可能性がありますが、httplibでdebuglevelを設定することにより、いくつかのデバッグ情報を取得できます。これを試して:

import urllib, urllib2, httplib

url = 'http://www.mozillazine.org/atom.xml'
httplib.HTTPConnection.debuglevel = 1

print "urllib"

data = urllib.urlopen(url);

print "urllib2"

request = urllib2.Request(url)
opener = urllib2.build_opener()
feeddata = opener.open(request).read()

これはここから直接コピーされます、それがコーシャであることを願ってください: http://bytes.com/topic/python/answers/517894-getting-debug-urllib2

1
beer_monk

問題をトラブルシューティングするには:

  1. スクリプトが実行されているOSとPythonのバージョンをお知らせください
  2. そのまったく同じマシンのコマンドプロンプトで、ping google.comが機能するかどうかを確認します(または「ホストが見つかりませんでした」と表示されます)。
  3. (2)が機能する場合は、そのマシンでブラウザーを開き([〜#〜] ie [〜#〜] if Windowsの場合は試してください)、そこで "google.com"を開いてみてください。問題がある場合は、インターネットオプション/接続/ LAN設定のプロキシ設定をよく見てください。

それがどのように進むかを教えてください。

1
Nas Banov

httpにsを追加します。つまり、urllib2.urlopen( ' https://google.com ')

私のために働いた

0
tekstar