提问人:mario 提问时间:7/11/2010 最后编辑:mario 更新时间:7/14/2010 访问量:231
用于 HTTP 支持的 Python 库 - 包括内容编码
Python library for HTTP support - including Content-Encoding
问:
我有一个抓取工具,可以查询不同的网站。他们中的一些人以不同的方式使用内容编码。由于我正在尝试模拟 AJAX 查询并且需要模仿 Mozilla,因此我需要全面支持。Python 有多个 HTTP 库,但似乎都不完整:
httplib 看起来很低级,更像是一个 HTTP 数据包嗅探器。
urllib2 是某种精心设计的骗局。各种 Web 客户端函数有十几个处理程序,但像 Content-Encoding 这样的强制性 HTTP 功能似乎不是。
机械化:很好,对于我的任务来说已经有些矫枉过正了,但只支持 CE 'gzip'。
httplib2:听起来很有前途,但实际上在“deflate”编码上失败了,因为原始 deflate 和 zlib 流的差异。
那么还有其他选择吗?我简直不敢相信我应该重新实现上述库的解决方法。将修补版本与我的应用程序一起分发并不是一个好主意,因为如果相应的库作为单独的分发包提供,打包程序可能会再次删除它。
我几乎不敢说,但 PHP 中的 http 函数 API 要好得多。除了 Content-Encoding:*,我有时可能还需要 multipart/form-data。那么,是否有用于 http 检索的综合第三方库?
答:
-1赞
karlw
7/11/2010
#1
美丽的汤可能会起作用。只是把它扔在那里。
评论
0赞
Peter Lyons
7/14/2010
BeautifulSoup 用于解析 HTML 和类似的标记。它不处理 HTTP。
1赞
Peter Lyons
7/14/2010
#2
我会考虑调用 cURL 的子进程或将 python 绑定用于 libcurl。
从这个描述来看,cURL 似乎支持 gzip 和 deflate。
评论
0赞
mario
7/14/2010
对于cmdline工作,我更喜欢wget而不是curl,因此有点不情愿,因为PycURL也是一个非标准扩展。但它可能是最成熟、功能最完整的解决方案,所以确实是最好的选择。
评论