如何使用python lxml获取html元素
我有以下html代码:如何使用python lxml获取html元素,python,xml,lxml,Python,Xml,Lxml,我有以下html代码: <table> <tr> <td class="test"><b><a href="">aaa</a></b></td> <td class="test">bbb</td> <td class="test">ccc</td> <
<table>
<tr>
<td class="test"><b><a href="">aaa</a></b></td>
<td class="test">bbb</td>
<td class="test">ccc</td>
<td class="test"><small>ddd</small></td>
</tr>
<tr>
<td class="test"><b><a href="">eee</a></b></td>
<td class="test">fff</td>
<td class="test">ggg</td>
<td class="test"><small>hhh</small></td>
</tr>
</table>
它工作得很好!结果是:
<td class="test"><b><a href="">aaa</a></b></td>
<td class="test"><small>ddd</small></td>
<td class="test"><b><a href="">eee</a></b></td>
<td class="test"><small>hhh</small></td>
ddd
啊
(因此每个
的第一列和第四列)
现在,我要摘录:
aaa(链接标题)
ddd(标签之间的文本)
eee(链接标题)
hhh(标签之间的文本)
如何提取这些值
(问题是我必须删除
标记,并获取第一列上锚的标题,然后删除第四列上的
标记)
谢谢大家! 你为什么不在每一步都拿到你想要的东西呢
links = [el.text for el in html.xpath('//td[@class="test"][position() = 1]/b/a')]
smalls = [el.text for el in html.xpath('//td[@class="test"][position() = 4]/small')]
print zip(links, smalls)
# => [('aaa', 'ddd'), ('eee', 'hhh')]
如果执行
el.text\u content()
操作,将从每个元素中删除所有标记内容,即:
result = [el.text_content() for el in result]
result = [el.text_content() for el in result]