首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Urlopen [Errno -2] Python

Urlopen [Errno -2] Python
EN

Stack Overflow用户
提问于 2013-08-16 20:10:26
回答 1查看 2.8K关注 0票数 1

我已经开发了一部分代码,我从网络抓取中使用:

代码语言:javascript
复制
link = 'http://www.cmegroup.com'+div.findAll('a')[3]['href']
user_agent = 'Mozilla/5.0'
headers = {'User-Agent':user_agent}
req = urllib2.Request(link, headers=headers)
page = urllib2.urlopen(req).read()

然而,我不理解的是,有时我在请求链接时会出现错误。但有时,我不会这样做。例如,错误:

代码语言:javascript
复制
urllib2.URLError: <urlopen error [Errno -2] Name or service not known>

为了这个链接:

代码语言:javascript
复制
http://www.cmegroup.com/trading/energy/refined-products/mini-european-naphtha-platts-cif-nwe-swap-futures_product_calendar_futures.html

当我重新运行代码时,我不会再次得到这个链接的错误,而是其他链接的错误。这会不会是因为无线连接?

EN

回答 1

Stack Overflow用户

发布于 2013-08-16 20:24:23

这看起来像是DNS或网络问题。如果您针对相同的URL多次运行相同的代码,并且有时有效,有时无效,那么问题可能不在于您的代码。

要调试该问题,您可以在语句周围执行try-except块,并从那里启动pdb或ipdb (如果已安装):

代码语言:javascript
复制
try:
    response = urllib2.urlopen(req)
except urllib2.URLError as ex:
    import pdb; pdb.set_trace()  # Use ipdb if installed
else:
    page = response.read()

然后,您可以查看响应、状态代码、异常跟踪等。

(顺便说一句,如果外部依赖不是问题,我强烈建议使用requests包而不是urllib2。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18273051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档