Xpath:如何使用xpath提取链接名称

时间:2015-02-01 07:26:50

标签: xpath

<table class="genre-table" width="100%" cellpadding="0" cellspacing="0" border="0">
<tbody>
  <tr class="odd">
    <td width="50%">
       <h3>
            <a href="http://www.imdb.com/genre/action/?ref_=gnr_mn_ac_mp">Action <span class="normal">»</span>
            </a>     
       </h3>   

我想从中提取单词action,如何编写相关的xpath,请帮忙

我试过这个,但没有任何东西被打印出来只是空白 - &gt;

    print genre.xpath('//*[@class="genre-table"]/tbody/tr[1]/td[1]/h3/a/text()')

1 个答案:

答案 0 :(得分:0)

按照给定的方式工作:

>>> import lxml.etree
>>> content='''
<table class="genre-table" width="100%" cellpadding="0" cellspacing="0" border="0">
<tbody>
  <tr class="odd">
    <td width="50%">
       <h3>
            <a href="http://www.imdb.com/genre/action/?ref_=gnr_mn_ac_mp">Action <span class="normal"></span>
            </a>
       </h3></td></tr></tbody></table>'''
>>> genre = lxml.etree.fromstring(content)
>>> print genre.xpath('//*[@class="genre-table"]/tbody/tr[1]/td[1]/h3/a/text()')
['Action ', '\n            ']

此次转变事件有两个常见原因:

  1. 您是从浏览器提供给您的DOM视图构建查询,因此您的实际文档与您在此处剪切和粘贴的内容不匹配。浏览器撒谎(或者更确切地说,重新格式化HTML以匹配理想化的DOM模型)。使用curl | less
  2. 此处未给出本文档其他部分中定义的XML命名空间。在查询中指定它们(如果存在)。