2016-07-18 60 views
0

我在BeautifulSoup 4. td標籤有可能是裏面的a標籤:如果存在標籤,則獲取標籤的屬性;否則無

row.find_all('td')[2].find('a') 

如果有,我想檢索a標籤的href屬性。否則,我想None

這是我想過的:

getattr(row.find_all('td')[2].find('a'), 'attrs', {}).get('href') 

什麼是做到這一點的有效途徑?

實例行:

<tr><td><a href="http://google.com">405</a></td> 
\n<td><font face="Arial" size="-1">12-Jul</font></td>\n<td><font face="Arial" size="-1">There could be an a-tag here.</fo 
nt></td>\n<td><font face="Arial" size="-1">On Motion</font></td>\n<td align="CENTER"><fo 
nt face="Arial" size="-1">F</font></td>\n<td><font face="Arial" size="-1">\xa0</font></td></tr> 
+0

什麼是你解析的HTML,至少是「行」和下面。 – TankorSmash

+0

@TankorSmash補充說 – Hatshepsut

回答

1

您可以選擇第二個tr和任何錨點,然後檢查使用if:

a = soup.select_one("tr:nth-of-type(2) a[href]") 


if a: 
    print(a["href"]) 

如果沒有錨將是無,如果有你可以提取href。