[英]How to get a nested element in beautiful soup
我正在努力獲取在td中獲取一些href所需的語法。 table,tr和td元素沒有任何類或id。
如果我想在這個例子中抓住錨點,我需要什么?
<tr> <td> <a> ...
謝謝
根據文檔,首先創建一個解析樹:
import BeautifulSoup
html = "<html><body><tr><td><a href='foo'/></td></tr></body></html>"
soup = BeautifulSoup.BeautifulSoup(html)
然后在其中搜索,例如搜索其直接父級為<td>
<a>
標記:
for ana in soup.findAll('a'):
if ana.parent.name == 'td':
print ana["href"]
像這樣嗎
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [td.find('a') for td in soup.findAll('td')]
那應該在您提供的html中的每個“ td”中找到第一個“ a”。 您可以調整td.find
以使其更具體,或者如果每個td內有多個鏈接,則使用findAll
。
更新:關於Daniele的評論,如果您想確保列表中沒有任何None
,那么您可以這樣修改列表理解:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [a for a in (td.find('a') for td in soup.findAll('td')) if a]
基本上,這只是添加了一個檢查,看是否有td.find('a')
返回的實際元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.