有一个使用Python的urllib3或请求进行gzip压缩解码的例子吗?

时间:2014-08-03 02:49:36

标签: python urllib3

我只需要一个例子......

我有urllib3的工作代码和下载带有附加gzip文件(XML)的页面的请求。

我不知道如何用这两个包来获得这个附件;我得到的只是HTML页面,而不是附加的数据。

任何人都有一个示例显示这两个包?如果它使用连接池,我也可以尝试其他的东西,这就是我所追求的。

感谢任何例子!

2 个答案:

答案 0 :(得分:1)

也许你可以这样做:

>>> import urllib3
>>> from StringIO import StringIO
>>> import gzip
>>>
>>> http = urllib3.PoolManager()
>>> response = http.request('GET', 'http://www.healthgrades.com/acupuncture-provider-profile-1.xml.gz')
>>> print gzip.GzipFile(fileobj=StringIO(response.data)).read()
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://www.healthgrades.com/provider/chris-withey-3vvnb</loc>
    <lastmod>2014-05-18T11:51:35.703Z</lastmod>
    <priority>0.9</priority>
    <changefreq>daily</changefreq>
  </url>
  <url>
    <loc>http://www.healthgrades.com/provider/holly-tucker-3w9mm</loc>
    <lastmod>2014-05-18T11:38:53.007Z</lastmod>
    <priority>0.9</priority>
    <changefreq>daily</changefreq>
  </url>
[etc...]

答案 1 :(得分:0)

得到了......我的愚蠢错误。

我错过了我需要的额外参数,它隐藏在现有代码中 与PyCurl合作。

给予&#34; https://the.url.I.needed&#34;给HTML一个标题显示一个gzip压缩附件, 同时添加参数:

&#34; https://the.url.I.needed?the_param&#34;给出了我期待的XML。

抱歉浪费你的时间;请求看起来像一件伟大的事情,我现在正在尝试 连接池,以加快我的过程。