2016-06-30 3 views
0

私はPythonとBeautifulSoupの新機能ですが、子供が特定の属性を持つ特定のタグを検索するにはどうすればよいですか?例えば 、クラスは= "開いた" 場合、私はすべての名前( 'ABC')とURL( "URL")を取得することができれば、私は願っています特定の子属性を持つタグを見つけるにはどうすればよいですか? - BeautifulSoup 4

<section ...> 
<a href="URL" ...> 
<h4 itemprop="name">ABC</h4> 
<p class="open"></p> 
</a> 
</section> 

。私は

soup.findAll(lambda tag: tag.name="section") 

によってすべてのセクションを取得することができますしかし、私はtag.childrenが反復子であるので、他の条件を追加する方法がわかりません。

答えて

1

あなたは<p>タグで、特定の属性を探しているので、私はattrs={"class": "open"}のみ<p>タグを検索して(<a>タグである)親を選択し、そこから残りの情報を収集します。

soup = BeautifulSoup(data, "html.parser") 
items = soup.find_all("p", attrs={"class": "open"}) 
for item in items: 
    name = item.parent.h4.text 
    url = item.parent.attrs.get('href', None) 
    print("{} : {}".format(name, url)) 
+0

ありがとうございました! – Arthur

関連する問題