使用 beautifulsoup get_text()

Using beautifulsoup get_text()

我可以使用以下代码块从网站解析我需要的字段:

response = requests.get(index_url)
soup = bs4.BeautifulSoup(response.text, "lxml")
poem = soup.select('div.siir p[id^=siir]')
print poem

但打印时带有 HTML 标签。我正在尝试使用 get_text() 函数。当我尝试这样使用时:

print poem.get_text()

我收到这个错误:

AttributeError: 'list' object has no attribute 'get_text'

我也试过这样用:

poem = soup.select('div.siir p[id^=siir]').get_text()

我又遇到同样的错误。我如何在解析正确的字段后删除 HTML 标签?

soup.select() 总是 returns 一个 list 元素,而不只是一个元素。依次对每个元素调用 get_text()

for element in poem:
    print element.get_text()

如果您只需要一个元素,则使用索引提取它:

print poem[0].get_text()