如何解决这个“NotImplementedError” Windows 上的 urllib2 / gevent 错误?

发布于 2024-10-21 15:18:43 字数 984 浏览 6 评论 0原文

我正在尝试在 Windows XP 上使用用 gevent 修补的 urllib2 打开一个 url:

from gevent import monkey
monkey.patch_all()
import urllib2

opener = urllib2.build_opener()
request = urllib2.Request("http://www.google.com")
response = opener.open(request)

并且在 opener.open 调用期间遇到此异常:

File "C:\Python26\lib\site-packages\gevent\socket.py", line 768, in getaddrinfo
  sockaddr = (inet_ntop(AF_INET6, res), port, 0, 0)
File "C:\Python26\lib\site-packages\gevent\socket.py", line 133, in inet_ntop
  raise NotImplementedError('inet_ntop() is not available on this platform')
NotImplementedError: inet_ntop() is not available on this platform
<SERPScrapper at 0xbc0f60> failed with NotImplementedError

查看 gevent socket.py 源代码,它似乎是相关的Windows 上的 IPV6...

有解决这个问题的想法或建议吗?

编辑:我没有遇到其他网址的问题(即:http://www.bing .com)。看来google正在使用IPV6。有没有办法强制 IPV4 响应?

I'm trying to open an url with urllib2 patched with gevent on Windows XP:

from gevent import monkey
monkey.patch_all()
import urllib2

opener = urllib2.build_opener()
request = urllib2.Request("http://www.google.com")
response = opener.open(request)

And I get this exception during the opener.open call:

File "C:\Python26\lib\site-packages\gevent\socket.py", line 768, in getaddrinfo
  sockaddr = (inet_ntop(AF_INET6, res), port, 0, 0)
File "C:\Python26\lib\site-packages\gevent\socket.py", line 133, in inet_ntop
  raise NotImplementedError('inet_ntop() is not available on this platform')
NotImplementedError: inet_ntop() is not available on this platform
<SERPScrapper at 0xbc0f60> failed with NotImplementedError

Looking at the gevent socket.py source code it seems to be related to IPV6 on windows...

Any idea or proposition to solve this problem ?

edit: I don't get the problem with other url (ie: http://www.bing.com). It seems that google is using IPV6. Is there a way to force an IPV4 response ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

給妳壹絲溫柔 2024-10-28 15:18:43

尝试改为向 http://ipv4.google.com/ 发出请求。

Try making your request to http://ipv4.google.com/ instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文