2016-08-17 6 views
-1

下のURLから、 "owner"というクラスを持つdiv内のimgタグのイメージソースを抽出する必要があります。以下のように美しいスープを使ったイメージソースの抽出

foodily.com

有する構造:私が試してみました

<div class="owner"> 
     <a href="/u/celinesteen"> 
      <img src="http://img07.foodily.net/img/50x50/6c4b366907eb.jpg"></a> 
     <div class="data"> 
      <div class="name">By 
      <a data-ftrack="{&quot;a&quot;:&quot;SU&quot;,&quot;b&quot;:&quot;SULT&quot;,&quot;c&quot;:&quot;Have Cake Will Travel&quot;}" class="_track" rel="nofollow" target="_blank" href="/u/celinesteen">Have Cake Will Travel</a> 
      </div> 
     </div> 
</div> 

は:

soup.find('div', {"class": "owner"}).findChildren('img') 

、それは私の全体のイメージタグを返す代わりに、私はちょうどそれの内部ソースを必要としています。

答えて

2

したら、あなたはimg要素を設置しました、あなたはdictionary-like access to its attributesを使用することができます。

soup.find('div', {"class": "owner"}).img['src'] 

またCSS selectorで一度でimg要素を取得することができます。

soup.select_one('.owner img')['src'] 
+0

ありがとうございます。あなたの答えを5分で受け入れます。 – Simer

1

findChildrenはタグの配列を返します。これらからsrc属性を取得してください:

images = s.find('div', {"class": "owner"}).findChildren('img') 
for img in images: 
     img.get('src') 

プリント:

'http://img07.foodily.net/img/50x50/6c4b366907eb.jpg' 

詳細はdocumentationを確認してください。

+0

ありがとうございます。あなたとあなたの答えはどちらも正しいです。 – Simer

+0

'findChildren'はbs2日に戻ります。find_allを使用してください。http://stackoverflow.com/a/38839074/2141635 –

関連する問題