Python 如何使用beautifulsoup分别获取节点文本和子标记
我的html类似于:Python 如何使用beautifulsoup分别获取节点文本和子标记,python,beautifulsoup,Python,Beautifulsoup,我的html类似于: <a class="title" href=""> <b>name <span class="c-gray">position</span> </b> </a> 虽然它可以做的工作,我不认为是一个美丽的方式。有什么更好的想法吗?这个想法是定位a元素,然后,对于名称-从内部b元素获取第一个文本节点,对于位置-获取span元素的文本: >>> a = soup.
<a class="title" href="">
<b>name
<span class="c-gray">position</span>
</b>
</a>
虽然它可以做的工作,我不认为是一个美丽的方式。有什么更好的想法吗?这个想法是定位
a
元素,然后,对于名称
-从内部b
元素获取第一个文本节点,对于位置
-获取span
元素的文本:
>>> a = soup.find("a", class_="title")
>>> name, position = a.b.find(text=True).strip(), a.b.span.get_text(strip=True)
>>> name, position
(u'name', u'position')
您可以通过以下方式使用
.contents
方法:
person = lia.find('b').contents
name = person[0].strip()
position = person[1].text
好吧~我只是懒得看文档,只知道get_text(),shame@milowang
.text()
和.get\u text()
是相同的
person = lia.find('b').contents
name = person[0].strip()
position = person[1].text