Reputation: 1178
So I'm trying to scrape this website product image src's using BeautifulSoup. The problem is that when I use the image class to select the src I get the error: TypeError: list indices must be integers or slices, not str
.
This is what I have:
images = soup.find_all('img', {'class': 'css-1rovmyu e65zztl0'})['src'] # gives error ^
Also when I do:
images = soup.find_all('img')
for image in images:
print(image['src'])
It returns all the image src's and works fine. I was reading another problem similar to fine and it said the fact that the image is nested may be the problem but it didnt work. This is the structure:
<picture class="css-yq9732">
<img class="css-1rovmyu e65zztl0" src="image src">
</picture>
Upvotes: 0
Views: 197
Reputation: 20048
images
is a list
, you have to access the index of the list and extract the value.
For example:
images = soup.find_all('img', {'class': 'css-1rovmyu e65zztl0'})
print(images[0]["src"])
Or to only get the first tag, use find()
instead of find_all()
Upvotes: 1