I am trying to scrape the link of image from : url='https://www.hydac.com/shop/en/1250064#simple-downloads'
Here is the error: AttributeError: 'NoneType' object has no attribute 'find_all'
I dont know what is going wrong. Here is my code:
r=requests.get(link)
soup = BeautifulSoup(r.text,'html.parser')
images=soup.find('div',attrs={'class':'fotorama__stage__frame fotorama_vertical_ratio fotorama__loaded fotorama__loaded--img fotorama__active'})
all_images=images.find_all('img')
for image in all_images:
print(image['src'])
CodePudding user response:
You are assuming that
images=soup.find('div',attrs={'class':'fotorama__stage__frame fotorama_vertical_ratio fotorama__loaded fotorama__loaded--img fotorama__active'})
will find something.
What is happening here is that it is finding nothing, since it tells you that images
is a NoneType (therefore has no find_all
attribute)
So you should add an if statement to handle this edge case where it does not find anything.
CodePudding user response:
To get image link of main product photo you can use next example:
import requests
from bs4 import BeautifulSoup
url = "https://www.hydac.com/shop/en/1250064#simple-downloads"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
print(soup.select_one('[alt="main product photo"]')["data-src"])
Prints:
https://www.hydac.com/shop/media/catalog/crossbase/cache/804510ce68ff34894246cc79cc94a424/PRD_PHO_3D/PRD_PHO_3D_10000020495-00002__SALL__AIN__V1.jpg