来自这个html来源:
<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>
我期待一个&#34;文本节点&#34;作为第一个孩子。关于如何解决这个问题的任何建议?
答案 0 :(得分:12)
我很确定以下内容应该做你想做的事情
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: '
>>>