web-dev-qa-db-fra.com

Comment extraire et télécharger toutes les images d'un site Web à l'aide de magnifiquesSoup?

J'essaie d'extraire et de télécharger toutes les images d'une URL. J'ai écrit un script

import urllib2
import re
from os.path import basename
from urlparse import urlsplit

url = "http://filmygyan.in/katrina-kaifs-top-10-cutest-pics-gallery/"
urlContent = urllib2.urlopen(url).read()
# HTML image tag: <img src="url" alt="some_text"/>
imgUrls = re.findall('img .*?src="(.*?)"', urlContent)

# download all images
for imgUrl in imgUrls:
    try:
        imgData = urllib2.urlopen(imgUrl).read()
        fileName = basename(urlsplit(imgUrl)[2])
        output = open(fileName,'wb')
        output.write(imgData)
        output.close()
    except:
        pass

Je ne veux pas extraire l'image de cette page voir cette image http://i.share.pho.to/1c9884b1_l.jpeg Je veux juste avoir toutes les images sans cliquer sur "Suivant" Bouton Je ne reçois pas comment puis-je obtenir toutes les photos dans "Suivant" de la classe.Que des changements que je devrais faire dans la suite?

13
user2711817

Les éléments suivants doivent extraire toutes les images d'une page donnée et l'écrire dans le répertoire où le script est en cours d'exécution.

import re
import requests
from bs4 import BeautifulSoup

site = 'http://pixabay.com'

response = requests.get(site)

soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img')

urls = [img['src'] for img in img_tags]


for url in urls:
    filename = re.search(r'/([\w_-]+[.](jpg|gif|png))$', url)
    with open(filename.group(1), 'wb') as f:
        if 'http' not in url:
            # sometimes an image source can be relative 
            # if it is provide the base url which also happens 
            # to be the site variable atm. 
            url = '{}{}'.format(site, url)
        response = requests.get(url)
        f.write(response.content)
21
Jonathan