kaggle kernels:urllib.request.urlopen不适用于任何网址

时间:2018-02-25 01:11:56

标签: python urllib2 kaggle

kaggle kernels处理提取网址列表的最佳方法是什么?

我首先尝试使用google.com进行测试。

First Method:使用urllib.request

import urllib.request resp =  urllib.request.urlopen('http://www.google.com')

这导致gai错误和urlopen错误[Errno -2]名称或服务未知

Second Method:使用请求

import requests resp = requests.get('http://www.google.com')

这导致错误gaierror:[Errno -3]名称解析暂时失败并且无法建立新连接:[Errno -3]名称解析暂时失败。

import urllib.request
req = urllib.request.Request('http://www.google.com')
print (req)

try:
    response = urllib.request.urlopen(req)
    print (response)
except urllib.error.URLError as e:
    print (e.reason)
    print("something wrong")

输出:

<urllib.request.Request object at 0x7fed1d00c518>
[Errno -2] Name or service not known
something wrong

我尝试按stackoverflow answer的建议解析DNS解析。

修复此错误的方法是什么?为什么urlopen或请求不在kaggle内核中工作?
我看到许多内核具有相同的错误kernel 1 kernel 2 kernel 3

1 个答案:

答案 0 :(得分:0)

注意事项:您需要启用Internet访问,内核才能在其“设置”菜单中使用它。为了做到这一点,您必须通过手机与Kaggle进行一次注册。 enter image description here