仅从Python中获取直接文本
我正在解析一个HTML文档,我想得到特定的标签,并将它们分别用于其他标签,但我正在解决标签中的标签等问题。有人能建议如何只获取标签内容而不包括标签内容吗仅从Python中获取直接文本,python,html,python-3.x,beautifulsoup,Python,Html,Python 3.x,Beautifulsoup,我正在解析一个HTML文档,我想得到特定的标签,并将它们分别用于其他标签,但我正在解决标签中的标签等问题。有人能建议如何只获取标签内容而不包括标签内容吗 <p> I want this text <b> I want to parse this separately </b> I also want this text </p> 我想要这个文本我想要单独解析这个我也想要这个文本 您可以使用它 from bs4 import BeautifulSo
<p> I want this text <b> I want to parse this separately </b> I also want this text </p>
我想要这个文本我想要单独解析这个我也想要这个文本
您可以使用它
from bs4 import BeautifulSoup, NavigableString
html = '''<p> I want this text1 <b> I want to parse this separately1 </b> I also want this text1 </p>
<p> I want this text2 <b> I want to parse this separately2 </b> I also want this text2 </p>'''
soup = BeautifulSoup(html, 'html.parser')
for p in soup.find_all('p'):
outer_text = ' '.join([x.strip() for x in p if isinstance(x, NavigableString)])
print(outer_text)
inner_text = p.b.text.strip()
print(inner_text)
来自bs4导入美化组,NavigableString
html=''我想要这个文本1我想要单独解析这个文本1我也想要这个文本1
我想要这个文本2我想要单独解析这个文本2我也想要这个文本2
soup=BeautifulSoup(html,'html.parser')
对于汤中的p。查找所有('p'):
外部文本=''.join([x.strip()表示p中的x,如果存在(x,Navigablesting)])
打印(外部文本)
内部文本=p.b.text.strip()
打印(内部文本)
输出:
我想要这个文本1我也想要这个文本1我想单独解析这个1
我想要这个文本2我也想要这个文本2
我想单独解析这个2
非常感谢,有没有一种方法可以将其实现到一个循环中,以便对整个文档中的所有标记执行相同的操作?是的,您可以。检查编辑。如果这个答案解决了你的问题,请随意接受。谢谢,我的结果中仍有一些标签,你知道为什么吗?你没有提供html,因此我不能在没有实际看到的情况下说任何话。以下是结果:
- 12分钟
- 26分钟