【问题标题】:Extract file from gzip folder从 gzip 文件夹中提取文件
【发布时间】:2017-12-20 21:29:48
【问题描述】:

我正在尝试从单击网站here 上的“SEC 投资顾问报告”按钮(仅供参考,此链接到 SEC 网站)的 gzip 中提取 XML 文件。下面是我的(最小)代码。我继续得到“嵌入的空字符”或“嵌入的空字节”,这取决于我是从我的请求中提供gzip.open() .text 还是.content。谁能帮我加载这个文件,以便我可以访问 XML?

import requests
import gzip

file = gzip.open(requests.get(r'https://www.adviserinfo.sec.gov/IAPD/Content/BulkFeed/CompilationDownload.aspx?FeedPK=39545&FeedType=IA_FIRM_SEC').text,'rt')

【问题讨论】:

  • gzip.open 采用文件名。此外,该链接中的 IA_FIRM_SEC_Feed_12_20_2017.xml.gz 似乎不是有效的 gzip 存档。它附加了 HTML。
  • 您可以使用gzip.decompress。不过,请注意我对附加 HTML 的评论。 gzip.decompress(request.content[:request.content.find(b"\r\n\r\n<!DOCTYPE html>") - 1])

标签: python python-3.x gzip


【解决方案1】:

gzip.open 采用文件名,而不是压缩数据。你可以使用gzip.decompress

您问题的存档看起来格式不正确。具体来说,它出于某种原因附加了 HTML。

以下内容仅使用 HTML 开头之前的内容:

import requests
import gzip

request = requests.get(r'https://www.adviserinfo.sec.gov/IAPD/Content/BulkFeed/CompilationDownload.aspx?FeedPK=39545&FeedType=IA_FIRM_SEC')

xml = gzip.decompress(request.content[:request.content.find(b"\r\n\r\n<!DOCTYPE html>") - 1])

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多