有使用Python的urllib3或requests解码gzipped附件的示例吗?

0 投票
2 回答
631 浏览
提问于 2025-04-18 15:47

我只需要一个例子...

我有用urllib3和requests这两个库写的代码,可以下载一个带有gzipped文件(XML格式)的网页。

但是我不知道怎么用这两个库获取这个附件;我得到的只是HTML页面,而不是附加的数据。

有没有人能给我一个用这两个库的例子?如果有其他方法也可以,只要它能使用连接池,我也愿意尝试。

谢谢任何例子!

2 个回答

0

明白了……这是我自己的愚蠢错误。

我忽略了一个额外的参数,这个参数藏在了原有的代码里,而这些代码是和PyCurl一起工作的。

直接给出 "https://the.url.I.needed" 会返回一个包含gzipped附件的HTML页面,

而加上参数后:

"https://the.url.I.needed?the_param" 就能得到我期待的XML格式。

抱歉浪费了你的时间;requests看起来真是个好东西,我现在开始尝试连接池来加快我的处理速度。

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...]

撰写回答