2016-07-18 22 views
0

私はその中aタグがあるかもしれませんBeautifulSoup 4でtdタグを持っていません:がある場合タグが存在する場合、タグの属性を取得します。そうでない場合はなし

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は、少なくとも 'row'以下のものです。 – TankorSmash

+0

@TankorSmashが追加されました – Hatshepsut

答えて

1

あなたはTR秒を選択することができ、その後、内部の任意のアンカーがあれば使用して確認してくださいがあれば、Noneになります何のアンカーが存在しない場合

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


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

をちょうどhrefを抽出することができます。

関連する問題