[英]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.