1
591
我知道已经说过了,但是我强烈推荐requests python包: http://docs.python-requests.org/en/latest/index.html 如果您使用的语言不是Python,那么您可能会认为urllib和urllib2很容易使用,代码不多,而且功能很强,这就是我以前的想法。但是请求包是如此的有用和短,以至于每个人都应该使用它。 首先,它支持完全RESTfulAPI,并且非常简单:
不管GET/POST是否永远不需要再次编码参数,它只需要一个字典作为参数,这样做很好。
另外,它甚至还有内置的JSON解码器(同样,我知道json.loads()编写起来并不多,但这确实很方便):
或者,如果您的响应数据只是文本,请使用:
这只是冰山一角。这是来自请求站点的功能列表:
|
2
188
URLLIB2提供了一些额外的功能,即
注意
在URLLIB2中还有实现更高级的URL支持的处理程序。简短的回答是,除非您使用的是旧代码,否则您可能希望使用urllib2中的url opener,但对于某些实用程序函数,您仍然需要导入到urllib中。 奖金答案 使用Google应用引擎,你可以使用httplib、urllib或urlib2中的任何一个,但它们都只是Google的URL获取API的包装器。也就是说,您仍然受到相同的限制,如端口、协议和允许的响应长度。不过,您可以像检索HTTP URL那样使用库的核心。 |
3
34
乌尔利布 和 ULLIb2 这两个python模块都执行与url请求相关的操作,但提供了不同的功能。 1)URLLIB2可以接受请求对象来设置URL请求的头,URLLIB2只接受URL。 2)Urllib提供 乌伦代码 方法,用于生成get查询字符串,urllib2没有这样的函数。这就是为什么urllib经常与urllib2一起使用的原因之一。 请求 -Requests_是一个用Python编写的简单、易用的HTTP库。 1)python请求自动对参数进行编码,因此您只需将它们作为简单参数传递,而不像在urllib的情况下,您需要在其中使用该方法 URLLIB码() 在传递参数之前对其进行编码。 2)自动将响应解码为Unicode。 3)请求也有更方便的错误处理,如果您的身份验证失败,URLLIB2将引发URLLIB2.URLError,而请求将按预期返回正常响应对象。您只需看看Boolean是否成功地完成了请求。 回答好 |
4
12
urlib2.urlopen接受请求类或URL的实例,而urlib.urlopen只接受URL。 这里也进行了类似的讨论: http://www.velocityreviews.com/forums/t326690-urllib-urllib2-what-is-the-difference.html |
5
10
我喜欢
|
6
8
一个相当大的区别是移植python2到python3。python3不存在urlib2,其方法移植到urlib。 因此,你使用的量很大,希望将来迁移到python3,考虑使用urllib。 但是,2to3工具将自动为您完成大部分工作。 |
7
6
为了增加现有的答案,我没有看到任何人提到Python请求不是本机库。如果您可以添加依赖项,那么请求就可以了。但是,如果您试图避免添加依赖项,那么urllib是一个本机python库,您已经可以使用它了。 |
8
5
您通常应该使用URLLIB2,因为这有时通过接受请求对象使事情变得更简单,而且还会引发协议错误的URLException。不过,使用谷歌应用引擎,你也不能使用。你必须使用 URL Fetch API 谷歌在其沙盒python环境中提供的。 |
9
5
要获取URL的内容,请执行以下操作:
很难写出python2和python3,
|
10
1
在上面的答案中,我发现缺少的一个关键点是Urllib返回一个类型为的对象
因此,read()方法可以与
附笔:
|
Nathan123 · 用于刮取结果的脚本似乎不起作用? 6 年前 |
Hojat Taheri · 在python 3中从页面提取链接 6 年前 |
Roman · urllib:html到csv错误 6 年前 |
Richard Smith · 从文本文件复制数据并将其插入URL 6 年前 |
Jorge Galán · 使用BeautifulSoup分析错误 6 年前 |