使用 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
我正在使用 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