如何只打印文本 beautifulsoup

新手上路,请多包涵

我正在尝试了解 beautifulsoup 的工作原理以创建应用程序。

我能够使用 .find_all() 查找并打印所有元素,但是它们也会打印 html 标签。我怎样才能只打印这些标签中的文本。

这就是我所拥有的:

 from bs4 import BeautifulSoup

"""<html>
<p>1</p>
<p>2</p>
<p>3</p>
"""

soup = BeautifulSoup(open('index.html'), "html.parser")
i = soup.find_all('p')
print i

原文由 snovosel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 462
2 个回答

这可能对您有帮助:-

 from bs4 import BeautifulSoup
source_code = """<html>
<p>1</p>
<p>2</p>
<p>3</p>
"""
soup = BeautifulSoup(source_code)
print soup.text

输出:-

 1
2
3

原文由 Piyush S. Wanare 发布,翻译遵循 CC BY-SA 3.0 许可协议

soup = BeautifulSoup(open('index.html'), "html.parser")
i = soup.find_all('p')
for p in i:
    print p.text

find_all() 将返回标签列表,您应该遍历它并使用 tag.text 获取标签下的文本

更好的方法:

 for p in soup.find_all('p'):
    print p.text

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题