漂亮的组合输出带有缩进



Python网络抓取和BeautifulSoup的新手。

我想格式化以下内容,这样当它输出标签时,它就会缩进

H1 text
H2 text
H3 text
H2 text
...

等等。

from bs4 import BeautifulSoup
import requests
soup = BeautifulSoup(website.content, 'html.parser')
tags = soup.find_all(['h1', 'h2'])
for soups in tags:
print(soups.string)

非常感谢你的帮助。

您可以定义缩进/前缀的字典

preString =  {'h1': '', 'h2': 't', 'h3':'tt', 'h4':'ttt'}

然后你可以循环打印,就像:

tags = soup.find_all([t for t in preString])
for soups in [t for t in tags if t.string]:
print(preString[soups.name]+soups.string)

我用if t.string进行了筛选,以防它们里面有标签而不仅仅是文本。使用.text可以获得全文,而不考虑子标签;如果你想要这样,并且你希望你的find_all是独立的,你可以改为:

tags = soup.find_all(['h1', 'h2'])
for soups in tags:
preStr = preString[soups.name] if soups.name in preString else ''
print(preStr+soups.string)

(定义preStr时,可以在else之后添加默认缩进/前缀(

相关内容

  • 没有找到相关文章

最新更新