【发布时间】: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