1

我想检索 SDMX 文件中给出的数据(如https://www.bundesbank.de/cae/servlet/StatisticDownload?tsId=BBK01.ST0304&its_fileFormat=sdmx&mode=its)。我尝试使用 BeautifulSoup,但似乎看不到标签。在下面的代码中

import urllib2
from bs4 import BeautifulSoup 
url = "https://www.bundesbank.de/cae/servlet/StatisticDownload?tsId=BBK01.ST0304&its_fileFormat=sdmx"
html_source = urllib2.urlopen(url).read()
soup = BeautifulSoup(html_source, 'lxml')
ts_series = soup.findAll("bbk:Series")

这给了我一个空对象。

BS4 是错误的工具,还是(更有可能)我做错了什么?提前致谢

4

1 回答 1

0

soup.findAll("bbk:series")将返回结果。

事实上,在这种情况下,即使您使用lxml解析器,BeautifulSoup 仍然会将其解析为 html,因为 html 标签不区分大小写,BeautifulSoup 将所有标签小写,因此soup.findAll("bbk:series")有效。请参阅官方文档中的其他解析器问题

如果要将其解析为xml,请soup = BeautifulSoup(html_source, 'xml')改用。它还使用了lxml因为lxml是 BeautifulSoup 的唯一xml解析器。现在您可以使用ts_series = soup.findAll("Series")来获取结果,因为 beautifulSoup 将剥离命名空间部分bbk

于 2016-09-16T13:58:47.560 回答