我在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>
您可以选择第二个tr和里面的任何锚点,然后使用if:进行检查
a = soup.select_one("tr:nth-of-type(2) a[href]")
if a:
print(a["href"])
如果没有锚,a将为None,如果有,您可以直接提取href。