在sitemap.xml中使用BeautifulSoup open .gz文件

时间:2015-10-30 02:49:18

标签: python xml beautifulsoup gz

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

我做了:

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

然后我有所有.gz个文件&#39;网址但<loc>偏出。我怎样才能摆脱<loc>

我现在拥有的:

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

我想摆脱<loc>,然后打开.gz文件。

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

1 个答案:

答案 0 :(得分:1)

你可以使用list comprehension来获取这样的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