【发布时间】:2013-12-18 01:24:29
【问题描述】:
当我试图打开此链接时 (http://-travka-.tokobagus.com/)
urllib2 给了我这个错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 2] No such file or directory>
我认为连字符/破折号开头有问题。 我怎么能用 urllib2 打开这样的 url?
完整代码
import urllib
import urllib2
from bs4 import BeautifulSoup
url = 'http://-travka-.tokobagus.com/'
#url = 'http://www.google.com'
data = urllib2.urlopen(url)
#soup = BeautifulSoup(data)
您会看到我改用 google.com,它运行良好。 可能是版本相关的错误?
我的是:
- Python - 2.7.4
- Ubuntu - 13.04
【问题讨论】:
-
给你错误的不是 BS,而是
urllib2。可以展示一下你的相关代码吗? -
@aIKid 代码已添加。请检查
-
您的代码对我来说很好用。这是在什么平台上的?
-
@alko 这也是我在 Python 2.6.8 /urllib2 2.6 上的结果。我相信这是 DNS 查找失败的正常错误代码。也许这个子域的 DNS 参差不齐?
-
这不是一个有效的 URL。 RFC1035 tools.ietf.org/html/rfc1035 在第 2.3.1 节的末尾(以及其他文档)表明连字符只能出现在名称中,而不是名称的第一个或最后一个字符。我想尝试查找无效名称可能会很麻烦!
标签: python web-scraping beautifulsoup urllib2 urllib