0

我只需要一个例子...

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

我看不到如何使用任何一个包获取此附件;我得到的只是 HTML 页面,而不是附加的数据。

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

感谢您提供任何示例!

4

2 回答 2

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...]
于 2014-08-03T22:47:53.747 回答
0

明白了……我犯了一个愚蠢的错误。

我错过了隐藏在与 PyCurl 一起使用的现有代码中所需的额外参数。

给出“ https://the.url.I.needed ”会给出带有显示 gzip 附件的标头的 HTML,同时添加参数:

https://the.url.I.needed?the_param ” 给出了我期待的 XML。

很抱歉浪费您的时间;requests 看起来很棒,我现在正在尝试连接池以加快我的进程。

于 2014-08-03T23:45:33.403 回答