使用lxml代码解析HTML
我有以下 HTML 代码:-
<table class="results">
<tr>
<td>
<a href="..">link</a><span>2nd Mar 2011</span><br>XYZ Consultancy Ltd<br>
<div>....</div>
</td>
</tr>
</table>
我正在使用 lxml+python 代码来解析上面的 HTML 文件。我想检索“XYZ Consultancy Ltd”,但我不知道如何执行此操作。到目前为止我的代码如下:-
import lxml.html
for el in root.cssselect("table.results"):
for el2 in el: #tr tags
for e13 in el2:#td tags
for e14 in e13:
if ( e14.tag == 'a') :
print "keyword: ",e14.text_content()
if (e14.tag == 'span'):
print "date: ",e14.text_content()
i have following HTML code:-
<table class="results">
<tr>
<td>
<a href="..">link</a><span>2nd Mar 2011</span><br>XYZ Consultancy Ltd<br>
<div>....</div>
</td>
</tr>
</table>
I am using lxml+python code to parse above HTML file. I want to retrieve "XYZ Consultancy Ltd" but I am not able to find out how to do this. So far my code is as follows:-
import lxml.html
for el in root.cssselect("table.results"):
for el2 in el: #tr tags
for e13 in el2:#td tags
for e14 in e13:
if ( e14.tag == 'a') :
print "keyword: ",e14.text_content()
if (e14.tag == 'span'):
print "date: ",e14.text_content()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 CSS 选择器
+
,即 直接相邻组合器,获取文本前面的
。然后,目标文本包含在其tail
中属性。You can use the CSS Selector
+
, a direct adjacent combinator, to get at the<br>
preceding the text. Then, the target text is contained in itstail
attribute.一种方法是使用 XPath 查找这样的
a
节点,并检查接下来的两个元素是否为span
和br
。如果是这样,请查看br
元素的tail
属性:from lxml import etree
One way of doing this is to use XPath to find such an
a
node, and check that the next two elements arespan
andbr
. If so, look at thetail
attribute of thebr
element:from lxml import etree