bs 输出有空行

html = '''
<span>Hello python
<p>python</p>
<p>hello</p>
</span>
'''
bs1 = BeautifulSoup(html, 'html.parser')
for bs_test in bs1.find('span').children:
    print(bs_test)
    
输出:

clipboard.png

为什么会有空行呢?

阅读 3.1k
1 个回答

因为你使用的是三引号, 三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如\n和\t都会被保留,所以你字符串每行后面都有一个’\n‘被打印出一个空行

clipboard.png

关于两个<p>之间两个空行的问题,可以调试一下就知道了
第一次循环:
图片描述

第二次循环:

图片描述

第三次循环:

clipboard.png

看到了原因了吧, \n是被单独提取出来

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