用beautifulSoup解析不同的bs4.element.Tag

时间:2017-05-19 13:38:52

标签: python html url beautifulsoup

我想解析这个url中的表并将其导出为csv:

http://www.bde.es/webbde/es/estadis/fi/ifs_es.html

如果我这样做:

sauce = urlopen(url_bank).read()
soup = bs.BeautifulSoup(sauce, 'html.parser')

然后这个:

resto = soup.find_all('td')
lista_text = []
for elements in resto:
    lista_text = lista_text + [elements.string]

除了最后一栏'CódigosIsin'之外,我得到了所有解析好的元素 这是因为html代码中断了。我不知道 该怎么做,我尝试过这部分,但仍然不起作用:

lista_text = lista_text + [str(elements.string).replace('<br/>','')]

之后,我将列表转到np.array,然后转到数据帧,将其导出为.csv。那部分已经完成,我只需解决这个问题。

提前致谢!

1 个答案:

答案 0 :(得分:2)

只是你需要注意.string的作用 - 如果有多个子元素,它会返回None - 与<br>的情况一样:

  

如果标签包含多个内容,则不清楚是什么   .string应该引用,因此.string被定义为None

改为使用.get_text()

for elements in resto:
    lista_text = lista_text + [elements.get_text(strip=True)]