5

タグの子をカニにしたいとき、私は美しいスープがどのように機能するかに混乱しています。だから、私は次のHTMLコードを持っています

<div class="media item avatar profile">
<a href="http://..." class="media-link action-medialink">
<img class="media-item-img" src="http://...jpeg" alt="name" title="name" width="150" height="200">
</a>
</div>    

src タグを取得したい。次のコードを使用しています。

soup = BeautifulSoup(file_)
for x in soup.find('div', attrs={'class':'media item avatar profile'}).findNext('img'):
    print x 

これにより、img タグ全体が出力されます。src のみを選択するにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

3

次のようなものが欲しいと思います:

soup.find('div', attrs={'class':'media item avatar profile'}).a.img['src']

In [1]: from bs4 import BeautifulSoup

In [2]: html = """\
   ...: <div class="media item avatar profile">
   ...: <a href="http://..." class="media-link action-medialink">
   ...: <img class="media-item-img" src="http://...jpeg" alt="name" title="name" width="150" height="200">
   ...: </a>
   ...: </div>"""

In [3]: soup = BeautifulSoup(html)

In [4]: soup.find('div', attrs={'class':'media item avatar profile'}).a.img['src']
Out[4]: 'http://...jpeg'
于 2013-04-10T08:02:26.087 に答える
0

findNext指定された条件に一致し、ドキュメント内の指定されたタグの後に表示される最初のアイテムを返します。これは、返されるタグが指定されたタグのであるとは限らないことに注意してください (例: タグの子div)。

findChildren指定されたタグの子に制限するために使用します。

import BeautifulSoup as bs

file_ = '''<html>
<div class="media item avatar profile">
<a href="http://..." class="media-link action-medialink">
<img class="media-item-img" src="http://...jpeg" alt="name" title="name" width="150" height="200">
</a>
</div>  
</html>
'''
soup = bs.BeautifulSoup(file_)
for x in soup.find(
        'div', attrs={'class':'media item avatar profile'}).findChildren('img'):
    print(x['src'])

収量

http://...jpeg
于 2013-04-10T08:06:43.013 に答える