使用 beautifulsoup get_text()

Jay*_*sby 4 python beautifulsoup

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

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

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

print poem.get_text()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

AttributeError: 'list' object has no attribute 'get_text'
Run Code Online (Sandbox Code Playgroud)

我也尝试这样使用:

poem = soup.select('div.siir p[id^=siir]').get_text()
Run Code Online (Sandbox Code Playgroud)

我再次遇到同样的错误。解析正确的字段后如何消除 HTML 标签?

Mar*_*ers 5

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

for element in poem:
    print element.get_text()
Run Code Online (Sandbox Code Playgroud)

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

print poem[0].get_text()
Run Code Online (Sandbox Code Playgroud)