【问题标题】:Use BeautifulSoup open .gz file in sitemap.xml在 sitemap.xml 中使用 BeautifulSoup 打开 .gz 文件
【发布时间】:2015-10-30 02:49:17
【问题描述】:

我正在使用 beautifulsoup 从网站构建数据。我需要先从sitemap.xml 网站获取所有.gz 文件。

我做到了:

def getGz():
    http = httplib2.Http()
    status, response = http.request('url/sitemap.xml)
    soup = BeautifulSoup(response)
    links = soup.find_all("loc")

然后我有所有.gz 文件的网址,但外面有<loc>。我怎样才能摆脱<loc>

我现在拥有的:

<loc>url/sitemap-samples-0.xml.gz</loc>

我想去掉&lt;loc&gt;,然后打开.gz文件。

而且,我如何从互联网上打开 .gz 文件并使用 python 获取其中的信息?

【问题讨论】:

  • 在每个链接上添加.get_text() 应该去掉&lt;loc&gt; 标签。
  • 请将您的问题标题更改为更具描述性和相关性。

标签: python xml beautifulsoup gzip


【解决方案1】:

你可以像这样使用列表理解来获取 url:

from bs4 import BeautifulSoup
def getGz():
    #http = httplib2.Http()
    #status, response = http.request('url/sitemap.xml')
    soup = BeautifulSoup(response, "lxml")
    links = [loc.text for loc in soup.find_all("loc")]

然后你必须下载gz文件并使用gzip打开它,或者将gz文件读入StringIO对象并将StringIO对象用于gzip.open

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2012-04-17
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多