簡體   English   中英

Xpath如何獲取標簽中的所有文本

[英]Xpath how to get all text in the tag

我有這個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>
   </tr>

<div id="m1" style="visibility:visible; display:block;">
 <table class="fl">
  <td class="ch">
   <A class="A3" title="Id: Kino Polska Muzyka" HREF="http://www.kinopolskamuzyka.pl/" TARGET="_blank">Kino Polska Muzyka</A>
 </tr>
  <td class="ch">
   <i>HBO3 HD</i></td>
 </tr>
  <td class="ch"> Faktura</td>
 </tr>

我的xpath是: tree.xpath('//div[@id="%s"]/table[@class= "fl"]/tr/td[@class="ch"]/a/text()'%div)

但這並不能給我所有渠道。 我想獲取<td class="ch">所有文本,我想要的結果是:

[['NetViet'],['Kino Polska Muzyka','HB03','Faktura']]

任何想法? 提前致謝。

除了弄亂了html結構之外,還要從xpath中刪除“ tr”和“ a”節點,因為並非每個“ td”都被它們包圍。

為什么不使用CSS選擇器將帶有該類的td標簽元素作為目標? 對於這種類型的選擇,它可能比xpath更快。

from bs4 import BeautifulSoup as bs

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>
   </tr>

<div id="m1" style="visibility:visible; display:block;">
 <table class="fl">
  <td class="ch">
   <A class="A3" title="Id: Kino Polska Muzyka" HREF="http://www.kinopolskamuzyka.pl/" TARGET="_blank">Kino Polska Muzyka</A>
 </tr>
  <td class="ch">
   <i>HBO3 HD</i></td>
 </tr>
  <td class="ch"> Faktura</td>
 </tr>
 '''

soup = bs(html, 'lxml')
items = [item.text.strip() for item in soup.select('td.ch')]
print(items)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM