我有这个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>
Run Code Online (Sandbox Code Playgroud)
我使用这个Python代码来解压缩所有<td class="test">lxml模块.
import urllib2
import lxml.html
code = urllib.urlopen("http://www.example.com/page.html").read()
html = lxml.html.fromstring(code)
result = html.xpath('//td[@class="test"][position() = 1 or position() = 4]')
Run Code Online (Sandbox Code Playgroud)
它很好用!结果是:
<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>
Run Code Online (Sandbox Code Playgroud)
(所以每个的第一列和第四列<tr>)现在,我必须提取:
aaa(链接的标题)
ddd(
<small>标签之间的文字)eee(链接的标题)
hhh(
<small>标签之间的文字)
我怎样才能提取这些值?
(问题是我必须删除<b>标签并在第一列上获取锚的标题并删除第四列<small>上的标签)
谢谢!
如果你这样做,el.text_content()你将从每个元素中删除所有标记内容,即:
result = [el.text_content() for el in result]
Run Code Online (Sandbox Code Playgroud)