Xpath只获取nod的第一个字符串

2024-09-30 14:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个网站抓取到一个网站,我只想得到一个节点的第一个字符串,我已经尝试了子和包含函数。你知道吗

我拥有的html代码:

<div id="m0" style="visibility:visible; display:block;">
  <table class="fl">
   <tr bgcolor="white"><td class="v px3"></td>
     <td class="ch">
        <a title="Id: NetViet" class="A3">NetViet</a></td>
     <td class="cr" ">Clear</td>
   <tr bgcolor="white"><td class="v px3"></td>
     <td class="ch">
        <a title="Id: Vozrojdenie.tv" class="A3">VOTV</a></td>
   <tr bgcolor="white"><td class="v px3"></td>
     <td class="ch">
        <A class="A3" title="Id: Suryoyo Sat" HREF="http://www.suryoyosat.com/" TARGET="_blank">Suryoyo Sat</A></td>
     <td class="cr" ">Clear</td>

<div id="m1" style="visibility:visible; display:block;">
  <table class="fl">
   <tr bgcolor="#DDD0B8"><td class="v px3"></td>
     <td class="ch">
      <a title="Sporadic or full 16/9 transmission"></td>
     <td class="cr" ">Conax<br />Irdeto 2<br />Mediaguard 3<br />Nagravision 3<br />Viaccess 3.0</td>
   <tr bgcolor="#DDD0B8"><td class="v px3"></td>
     <td class="ch">
       <a title="Id: Sportklub HD" class="A3">Sport Klub HD Poland</a></td>
     <td class="cr" ">Conax<br />Mediaguard 3<br />Nagravision 3<br />Viaccess 3.0</td>
   <tr bgcolor="#DDD0B8"><td class="v px3"></td>
     <td class="ch">
       <a title="Id: Animal Planet HD" class="A3">Animal Planet HD</a></td>
     <td class="cr" ">Conax<br />Irdeto 2<br />Mediaguard 3<br />Nagravision 3<br />Viaccess 3.0</td>

我正在使用xpath查询:

encrypted=tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[@class="cr"]/text()'%div)

它返回:

[['Clear','Clear','Clear'],['Conax','Irdeto 2','Mediaguard 3','Nagravision 3','Conax','Mediaguard 3','Nagravision 3', 'Viaccess 3.0',...]]

我要它回来:

[['Clear','Clear','Clear'],['Conax','Conax','Conax',...]]

我正在尝试这个查询,但它没有给我什么:

encrypted=tree.xpath('substring-before(//div[@id="%s"]/table[@class= "fl"]/tr/td[@class="cr"]/text(),"C")'%div)

你知道吗?(我正在使用lxml和来自python、xpath 1.0的请求)


Tags: brdividtitlechtra3class