【问题标题】:Unable to extract image src with bs4无法使用 bs4 提取图像 src
【发布时间】:2021-01-26 01:19:40
【问题描述】:

所以我正在尝试使用 BeautifulSoup 抓取此网站产品图片 src。问题是当我使用图像类选择 src 时出现错误:TypeError: list indices must be integers or slices, not str

这就是我所拥有的:

images = soup.find_all('img', {'class': 'css-1rovmyu e65zztl0'})['src'] # gives error ^

当我这样做时:

images = soup.find_all('img')

for image in images: 
   print(image['src'])

它返回所有图像 src 并且工作正常。我正在阅读另一个类似于罚款的问题,它说图像嵌套的事实可能是问题,但它没有工作。这是结构:

<picture class="css-yq9732">
    <img class="css-1rovmyu e65zztl0" src="image src">
</picture>

【问题讨论】:

  • 这是因为find_all 正在返回一个列表,但您正在使用密钥尝试访问它。只需执行soup.find_all('img', {'class': 'css-1rovmyu e65zztl0'})[0]['src'] 即可获得第一个元素
  • 虽然select_one 或类似的东西可能会更好

标签: python python-3.x beautifulsoup


【解决方案1】:

imageslist,您必须访问列表的索引并提取值。 例如:

images = soup.find_all('img', {'class': 'css-1rovmyu e65zztl0'})

print(images[0]["src"])

或者只获取第一个标签,使用find()而不是find_all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多