首页 > 解决方案 > 从具有特定属性的 img 标签中提取 data-src 值

问题描述

我正在编写 python 代码以从具有某些属性的某些 img 标记中提取 data-src 的值。我正在使用类属性,但它具有不同的值。

这是我从中提取的两个样本。

<img class="img-fluid lazy"  data-src="https://d1bng4dn08r9r5.cloudfront.net/contents/cover-1588341903.png"
alt="Happy 1st day of the month"
src="https://www.simrankaurapp.com/img/icons/default-img.png" />

<img class="img-fluid lazy blur-img image5ea68b9463389011485bf592" 
      data-src="https://d1bng4dn08r9r5.cloudfront.net/contents/cover-1587973008.jpg"
alt="Everyday is more than just tongue-out tuesday"
src="https://www.simrankaurapp.com/img/icons/default-img.png" />

这是我的代码

elements = soup.findAll('img',{'class', 'img-fluid lazy'})
for element in elements:
    print(element['data-src'])

我想在 txt 文件中获取两个 url,但无法这样做。页面也有无限滚动,如果页面我想到达底部。

标签: python-3.xweb-scrapingbeautifulsoup

解决方案


当前代码与确切的类匹配,但第二个图像标签有其他类。
所以你可以尝试使用正则表达式来匹配它,希望它有所帮助。

import re
soup.find_all('img', {'class': re.compile('^img-fluid lazy.*')})

您可以在此处找到更多信息: 使用 Beautiful Soup 在跨度中查找部分类名


推荐阅读