如何在使用python 3和beautifulsoup时使用相同的排列方式来获取所有文本4.我尝试了一个for循环,但没有奏效。如何从HTML数据中获取文本?
from bs4 import BeautifulSoup
data = """
<body>
<div id="Select">
<h1 id="wall">
First
</h1>
</div>
</div>
<div id="color_acts">
<p id="acts_h">
Choose
</p>
<p id="actshead">
Color
</p>
<p id="acts">
Blue
</p>
</div>
<div id="Select">
<h1 id="wall">
Second
</h1>
</div>
</div>
<div id="color_acts">
<p id="acts_h">
Choose
</p>
<p id="actshead">
Color
</p>
<p id="acts">
Green
</p>
</div>
</body>
"""
soup = BeautifulSoup(data, "html.parser")
for Colors in soup.find_all('div', id='Select'):
CC = Colors.find('h1').text
print(CC)
SS = soup.find('div', id='color_acts')
print(SS)
我的输出:
First
<div id="color_acts">
<p id="acts_h">
Choose
</p>
<p id="actshead">
Color
</p>
<p id="acts">
Blue
</p>
</div>
Second
<div id="color_acts">
<p id="acts_h">
Choose
</p>
<p id="actshead">
Color
</p>
<p id="acts">
Blue
</p>
</div>
我的预期输出:
First
Choose
Color
Blue
Second
Choose
Color
Green
请注意,我的预期输出有蓝绿色的,然后,但实际产量只是有蓝色的两倍。我怎样才能让输出具有正确的颜色并防止打印html标签?
你的意思是你要正确的彩色打印?你的输出有两次蓝色,你的输出有蓝色和绿色。或者你的意思是你想从你的打印中删除HTML标签? – SuperBiasedMan
两者。删除HTML标签并获取正确的输出 –