kaggle 内核:urllib.request.urlopen 不适用于任何 url
kaggle kernels: urllib.request.urlopen not working for any url
在 kaggle kernels
中处理 url 列表提取的最佳方法是什么?
我首先尝试使用 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
我尝试按照 Whosebug answer 的建议解析 DNS 解析。
解决此错误的方法是什么?为什么 urlopen 或请求在 kaggle 内核中不起作用?
我看到很多内核都有同样的错误 kernel 1 kernel 2 kernel 3.
这对您不起作用的原因是因为 Kaggle Kernels 当前无法访问互联网。因此,您无法在内核中进行需要网络连接的 API 调用。
编辑 2018 年 8 月:仅供参考,我们现在已经添加了对内核的互联网访问。 :) 您可以在编辑器中的 left-hand 边栏中启用它。
警告:您需要为您的内核启用 Internet 访问才能在其设置菜单中使用它。为了能够做到这一点,您必须通过手机在 Kaggle 上注册一次。
在 kaggle kernels
中处理 url 列表提取的最佳方法是什么?
我首先尝试使用 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
我尝试按照 Whosebug answer 的建议解析 DNS 解析。
解决此错误的方法是什么?为什么 urlopen 或请求在 kaggle 内核中不起作用?
我看到很多内核都有同样的错误 kernel 1 kernel 2 kernel 3.
这对您不起作用的原因是因为 Kaggle Kernels 当前无法访问互联网。因此,您无法在内核中进行需要网络连接的 API 调用。
编辑 2018 年 8 月:仅供参考,我们现在已经添加了对内核的互联网访问。 :) 您可以在编辑器中的 left-hand 边栏中启用它。
警告:您需要为您的内核启用 Internet 访问才能在其设置菜单中使用它。为了能够做到这一点,您必须通过手机在 Kaggle 上注册一次。