使用美丽的汤提取图像源

时间:2016-08-17 13:16:39

标签: django python-2.7 beautifulsoup

从下面的url我需要提取具有类"所有者"的div中的img标签的图像源。

foodily.com

结构如下:

ManyToMany

我试过了:

    <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>

然后它返回整个图像标签,而我只需要其中的源。

2 个答案:

答案 0 :(得分:2)

一旦您找到了img元素,就可以使用dictionary-like access to its attributes

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

您还可以使用CSS selector一次性访问img元素:

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

答案 1 :(得分:2)

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了解详情。