python - 使用 beautifulsoup get_text()

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

最佳答案

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

for element in poem:
    print element.get_text()

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

print poem[0].get_text()

关于python - 使用 beautifulsoup get_text(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33318980/

相关文章:

python - 使用 python 抓取网站返回 []

python - BeautifulSoup 找不到所需的 div

python - BeautifulSoup get_text() 函数包括 css

python - 有状态 LSTM 和流预测

Python:dict默认参数...我怎么不知道它们是这样工作的?

python - 将 +1 添加到函数内的变量

Python BeautifulSoup - 复制到新文件时字符被破坏

Python 列表理解与求和

python - tkinter PhotoImage 不存在?

Python不会写入文件