使用 BeautifulSoup 打开 sitemap.xml 中的 .gz 文件

Use BeautifulSoup open .gz file in sitemap.xml

我正在使用 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 个文件的 url,但 <loc> 在外面。我怎样才能摆脱 <loc>?

我现在拥有的:

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

我想删除 <loc> 然后打开 .gz 文件。

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

你可以像这样使用列表推导得到 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