Xpath仅获取节点的第一个字符串

时间:2019-02-26 11:22:22

标签: python xpath web-scraping

我正在对网站进行爬网,我只想获取节点的第一个字符串,我已经尝试了该子节点并包含函数。

我拥有的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的请求)

0 个答案:

没有答案