Sam*_*han 6 python sockets urllib beautifulsoup
所以,我的代码只有 4 行。我正在尝试连接到一个网站,之后我想做的事情是无关紧要的,因为错误是在没有其他代码的情况下出现的。
\n\nimport urllib.request\nfrom bs4 import BeautifulSoup \n\nhtml=urllib.request.urlopen(\'http://python-data.dr-chuck.net/known_by_Fikret.html\').read()\nsoup=BeautifulSoup(html,\'html.parser\')\nRun Code Online (Sandbox Code Playgroud)\n\n以及错误(简要总结一下):
\n\nfor res in _socket.getaddrinfo(host, port, family, type, proto, flags):\nsocket.gaierror: [Errno 11002] getaddrinfo failed\nDuring handling of the above exception, another exception occurred:\nurllib.error.URLError: <urlopen error [Errno 11002] getaddrinfo failed>\nRun Code Online (Sandbox Code Playgroud)\n\n这是我尝试过的。
\n\n以及更长且完整的错误版本:
\n\nTraceback (most recent call last):\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 1240, in do_open\nh.request(req.get_method(), req.selector, req.data, headers)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 1083, in request\nself._send_request(method, url, body, headers)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 1128, in _send_request\nself.endheaders(body)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 1079, in endheaders\nself._send_output(message_body)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 911, in _send_output\nself.send(msg)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 854, in send\nself.connect()\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\http\\client.py", line 826, in connect\n(self.host,self.port), self.timeout, self.source_address)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\socket.py", line 693, in create_connection\nfor res in getaddrinfo(host, port, 0, SOCK_STREAM):\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\socket.py", line 732, in getaddrinfo\nfor res in _socket.getaddrinfo(host, port, family, type, proto, flags):\nsocket.gaierror: [Errno 11002] getaddrinfo failed\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\nFile "D:/baiduyundownload/Tempo/Active/Python/Python Examples/Fileanalysis11111.py", line 4, in <module>\nhtml=urllib.request.urlopen(\'http://python-data.dr-chuck.net/known_by_Fikret.html\').read()\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 162, in urlopen\nreturn opener.open(url, data, timeout)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 465, in open\nresponse = self._open(req, data)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 483, in _open\n\'_open\', req)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 443, in _call_chain\nresult = func(*args)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 1268, in http_open\nreturn self.do_open(http.client.HTTPConnection, req)\nFile "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35-32\\lib\\urllib\\request.py", line 1242, in do_open\nraise URLError(err)\nurllib.error.URLError: <urlopen error [Errno 11002] getaddrinfo failed>\nRun Code Online (Sandbox Code Playgroud)\n
这意味着您的 DNS 系统无法正常工作,或者您必须在网络上使用代理且其定义不正确。
如果您需要使用代理,请将环境变量HTTP_PROXY(以及可选的HTTPS_PROXY)设置为适合您的网络的正确配置。格式为http://proxy.example.com:80;如果您的代理需要用户名和密码,您应该将其传入,如下所示:http://username:password@proxy.example.com:80。
对于 DNS 问题,请尝试从命令行查找域。打开命令提示符并键入nslookup python-data.dr-chuck.net并查看它是否向您返回 IP 地址。
这是 DNS 的问题;显然你的 python 程序无法解析你提供的 URL 的主机名。也许 DNS 在运行它的主机上配置错误?
另外,我可以推荐使用requests库吗?这是一个更好、更容易使用的模块来执行 Web 请求。您可以在这里找到它: https: //pypi.python.org/pypi/requests
| 归档时间: |
|
| 查看次数: |
28134 次 |
| 最近记录: |