使用BeautifulSoup第一个孩子标签
问题描述:
从这个网站源之前提取文本:使用BeautifulSoup第一个孩子标签
<div class="category_link">
Category:
<a href="/category/personal">Personal</a>
</div>
我想提取文本Category:
下面是使用Python/BeautifulSoup(以输出为注释我尝试 - 之后#)
parsed = BeautifulSoup(sample_html)
parsed_div = parsed.findAll('div')[0]
parsed_div.firstText() # <a href="/category/personal">Personal</a>
parsed_div.first() # <a href="/category/personal">Personal</a>
parsed_div.findAll()[0] # <a href="/category/personal">Personal</a>
我希望有一个“文本节点”可作为第一个孩子。有关我如何解决这个问题的任何建议?
答
我确信以下应该做你想要
parsed.find('a').previousSibling # or something like that
这将返回一个NavigableString
实例,它是几乎同样的事情 作为unicode
实例什么,但你可以叫上unicode
到获取一个 unicode对象。
我会看看我是否可以测试这一点,并让你知道。
编辑:我只是证实了它的工作原理:
>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup('<div class=a>Category: <a href="/">a link</a></div>')
>>> soup.find('a')
<a href="/">a link</a>
>>> soup.find('a').previousSibling
u'Category: '
>>>
+0
真棒!像魅力一样工作 – 2012-04-14 14:58:36
'parsed_div.contents [0]' – Avaris 2012-04-14 16:37:35