使用beautifulsoup get_text()

时间:2015-10-24 13:54:42

标签: python beautifulsoup

我可以使用此代码块解析我需要的字段:

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标记?

1 个答案:

答案 0 :(得分:3)

soup.select()始终返回元素的列表,而不仅仅是一个元素。依次为每个元素调用get_text()

for element in poem:
    print element.get_text()

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

print poem[0].get_text()