1

メールを送信するスクリプトを実行しようとすると、次のエラーが表示されます

    import urllib.request
    import re
    import smtplib
    from email.mime.text import MIMEText
    from bs4 import BeautifulSoup
    page=urllib.request.urlopen("http://www.crummy.com/")
    soup=BeautifulSoup(page)
    v=soup.findAll('a',href=re.compile('http://www.crummy.com/2012/07/24/0'))
    for link in v:

      w=link.get('href')


    server = smtplib.SMTP( "smtp.gmail.com", 587 )
    server.starttls()
    server.login( 'xxxxxxxxxxx', 'xxxxxxx' )
    server.sendmail( 'xxxxxxxxx', 'xxxxxxxxx', "bonus question is up" )

トレースバック (最新の呼び出しが最後): File "C:\Python32\bonus", line 14,
in server = smtplib.SMTP( "smtp.gmail.com", 587 ) File
"C:\Python32\lib\smtplib.py "、259 行目、init ファイル "C:\Python32\lib\smtplib.py"、319 行目、connect self.sock = self._get_socket(host, port, self.timeout) ファイル "C:\Python32 \lib \smtplib.py"、294 行目、_get_socket return socket.create_connection((host, port), timeout) ファイル "C:\Python32\lib\socket.py"、386 行目、create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11004] getaddrinfo failed 回避する最善の方法についてのアドバイスをお願いします

4

1 に答える 1

4

このgetaddrinfo関数には次の目的があります。

getaddrinfo 関数は、プロトコルに依存しない ANSI ホスト名からアドレスへの変換を提供します。

失敗した場合は、指定されたホスト名をそれぞれのアドレスに変換できないことを意味します。基本的にDNSクエリを実行しています。

「11004」が返されたエラー番号には、次のgetaddrinfoメッセージが関連付けられています。

有効な名前、要求されたタイプのデータ レコードがありません。要求された名前は有効であり、データベースで見つかりましたが、解決されている正しい関連データがありません。これの通常の例は、DNS (ドメイン ネーム サーバー) を使用するホスト名からアドレスへの変換の試行 (gethostbyname または WSAAsyncGetHostByName を使用) です。MX レコードが返されますが、A レコードは返されません。これは、ホスト自体は存在するが、直接到達できないことを示しています。

お探しの名前には正しいデータが関連付けられていないようです。

あなたの URL は正しいですか?

リンク:

getaddrinfo: http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx

WinSock エラー コード: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx

于 2012-09-19T12:55:27.493 に答える