首页 > 解决方案 > \n 没有转换为 BeautifulSoup 输出中的结束行

问题描述

我正在尝试学习 BeautifulSoup,但我之前没有这方面的经验,我正在从这个问题的答案中测试实现 - > python BeautifulSoup search a tag

但是,我的输出与他们列出的输出不匹配,因为\n没有转换为新行。出了什么问题,我该如何解决?

输入:

from bs4 import BeautifulSoup

html_doc = """<html>
 <body>
  <a class="black">
   <b>
    text1
   </b>
   <c>
    text2
   </c>
  </a>
  <a class="micio">
  </a>
  <a class="black">
  </a>
 </body>
</html>"""
soup = BeautifulSoup(html_doc, "lxml")
soup.prettify()
print soup.find_all("a", {"class":"black"})

输出:

[<a class="black">\n<b>\n    text1\n   </b>\n<c>\n    text2\n   </c>\n</a>, <a class="black">\n</a>]

标签: pythonbeautifulsoup

解决方案


如果您正在寻找输出标签中的文本,那么您不妨遍历该find_all方法返回的列表

all = soup.find_all("a", {"class":"black"})
for i in all:
    print(i.text)

这将返回带有空格的标签文本,这些空格可以被清除


推荐阅读