我必须使用这样的HTML:
<li><a href="#">S:</a><a class="#"> (n) </a><a href="#">trial</a>, <a href="#">trial run</a>, <b>test</b>, <a href="#">tryout</a> (trying something to find out about it) <i>"a sample for ten days free trial"; "a trial of progesterone failed to relieve the pain"</i></li>
问题是我需要从两个孩子(如a
和i
s)和文本节点(如孩子之间的,
部分)获取文本
所有我能做的就是从每个孩子那里得到文本并将它们放在一起(除了所有文本节点之外的所有内容)或者只获取文本节点(而不是{{1}和a
s)。有没有办法同时获得两者?
答案 0 :(得分:1)
lxml changelog显示lxml v2.3与python 3.1.2及更新版本兼容。
您也可以使用正则表达式re.sub(r'<[^>]*?>', '', val)
作为Python's equivalent to PHP's strip_tags表示。
答案 1 :(得分:0)
您可以使用lxml.html。
执行此操作In [1]: import lxml.html
In [2]: el = lxml.html.fromstring('<li><a href="#">S:</a><a class="#"> (n) </a><a href="#">trial</a>, <a href="#">trial run</a>, <b>test</b>, <a href="#">tryout</a> (trying something to find out about it) <i>"a sample for ten days free trial"; "a trial of progesterone failed to relieve the pain"</i></li>')
In [3]: print el.text_content()
S: (n) trial, trial run, test, tryout (trying something to find out about it) "a sample for ten days free trial"; "a trial of progesterone failed to relieve the pain"