Home > Net >  How do I get 1 href per one <li> (multiple of them)?
How do I get 1 href per one <li> (multiple of them)?

Time:11-01

I am trying to get images which are placed inside of <li>'s anchor tag as a href.
I am able to get only one link, but not everything.

I am trying to scrape the following page:

https://www.msxdistribution.com/love-triangle

As you can see there are multiple product images and I am trying to get them but unfortunately I am not able to do so, what I did successfully is to get only first image, but not other...

Here's my code:

def scraping_data(productlinks,r):
    ix = int(0)
    for link in productlinks:
        ix = ix   1
        f = requests.get(link,headers=headers).text
        hun=BeautifulSoup(f,'html.parser')
        dom = etree.HTML(str(hun))
        
#Here I get description of product
        try:
            name=hun.find("h1",{"class":"product-name"}).get_text().replace('\n',"")
            print(name)
        except:
            name = None
        try:
            print("Trying to fetch image...")
            all_imgs = hun.find_all('img') #Here I tried to fetch every img from web-site
            for image in all_imgs:
                print(all_imgs)
                ioner = image.find_all(attrs={'class': 'zoomImg'}) #Tried to get only images with class of zoomImg #Unsuccessful
                print(ioner)
                ss = hun.find("a",{"class":"fancy-images"}).get('href') #This one gets only first img and it works

            print(ss)
        except Exception as e:
            print("No images")

CodePudding user response:

Try:

import requests
from bs4 import BeautifulSoup


url = "https://www.msxdistribution.com/love-triangle"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

for img in soup.select(".etalage_thumb_image"):
    print(img["src"])

Prints:

https://www.msxdistribution.com/media/catalog/product/cache/4/thumbnail/800x800/9df78eab33525d08d6e5fb8d27136e95/7/1/7101024-1_1/stimolatore-love-triangle-11.jpg
https://www.msxdistribution.com/media/catalog/product/cache/4/thumbnail/800x800/9df78eab33525d08d6e5fb8d27136e95/7/1/7101024-2_1/stimolatore-love-triangle-12.jpg
https://www.msxdistribution.com/media/catalog/product/cache/4/thumbnail/800x800/9df78eab33525d08d6e5fb8d27136e95/7/1/7101024-3_1/stimolatore-love-triangle-13.jpg
https://www.msxdistribution.com/media/catalog/product/cache/4/thumbnail/800x800/9df78eab33525d08d6e5fb8d27136e95/7/1/7101024-4_1/stimolatore-love-triangle-14.jpg
https://www.msxdistribution.com/media/catalog/product/cache/4/thumbnail/800x800/9df78eab33525d08d6e5fb8d27136e95/7/1/7101024-5/stimolatore-love-triangle-15.jpg
  • Related