evi*_*evi 5 python beautifulsoup
当你想抓住一个标签的孩子时,我对汤的作用感到困惑。所以,我有以下 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>
Run Code Online (Sandbox Code Playgroud)
我想获取 src 标签。我正在使用以下代码:
soup = BeautifulSoup(file_)
for x in soup.find('div', attrs={'class':'media item avatar profile'}).findNext('img'):
print x
Run Code Online (Sandbox Code Playgroud)
这将打印整个 img 标签。我如何只选择 src ?
谢谢你。
src是标签的一个属性。获得标签后,像访问字典键一样访问属性;您只找到了a标签,因此您也需要导航到包含的img标签:
for x in soup.find_all('div', attrs={'class':'media item avatar profile'}):
print x.a.img['src']
Run Code Online (Sandbox Code Playgroud)
您使用的findNext()返回标记对象的代码;循环给你孩子,所以x是img对象。我将其更改为更直接和更清晰。x现在是div,我们直接导航到第一个a包含的img标签。
我想你会想要这样的东西:
soup.find('div', attrs={'class':'media item avatar profile'}).a.img['src']
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15312 次 |
| 最近记录: |