Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python lxml获取html元素_Python_Xml_Lxml - Fatal编程技术网

如何使用python lxml获取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> <

我有以下html代码:

<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]