BeautifulSoup を使用して、検索する属性のみを含むタグを検索するにはどうすればよいでしょうか?
たとえば、すべての<td valign="top">
タグを検索したいとします。
次のコード:raw_card_data = soup.fetch('td', {'valign':re.compile('top')})
必要なデータをすべて取得するだけでなく、<td>
属性を持つタグも取得しますvalign:top
私も試してみましたがraw_card_data = soup.findAll(re.compile('<td valign="top">'))
、何も返されませんでした(おそらく正規表現が間違っているため)
<td>
BeautifulSoupで「属性が「valign:top
」のみのタグを検索する」という方法があるかどうか疑問に思っていました。
アップデートたとえば、HTML ドキュメントに次の<td>
タグが含まれているとします。
<td valign="top">.....</td><br />
<td width="580" valign="top">.......</td><br />
<td>.....</td><br />
<td>
最初のタグ(<td width="580" valign="top">
)だけを返したいのですが
ベストアンサー1
説明されているようにBeautifulSoup ドキュメント
以下を使用できます:
soup = BeautifulSoup(html)
results = soup.findAll("td", {"valign" : "top"})
編集 :
valign="top" 属性のみを持つタグを返すには、タグattrs
プロパティの長さを確認します。
from BeautifulSoup import BeautifulSoup
html = '<td valign="top">.....</td>\
<td width="580" valign="top">.......</td>\
<td>.....</td>'
soup = BeautifulSoup(html)
results = soup.findAll("td", {"valign" : "top"})
for result in results :
if len(result.attrs) == 1 :
print result
返される結果:
<td valign="top">.....</td>