Télécharger en masse des images à partir d'une URL spécifique avec python

introduction

Dans le "Batch download images from specific site URLs with python" écrit précédemment, par exemple

<img src="../sample.png ">

Cette fois, j'ai résolu le problème que je ne pouvais pas télécharger l'image à cause d'ERREUR. Cependant, ce programme est fondamentalement root sur l'url? Je pense à un cas où il est divisé sur (http: // nom de domaine / hiérarchie). (Je suis assez pauvre en explication et je ne comprends pas ce que je dis (^^;) ↑)

Code ajouté

Ce que j'ai ajouté dans ce code est une fonction appelée get_url_root. Argument: URL saisie par l'utilisateur Valeur de retour: URL jusqu'au nom de domaine. Si la valeur de retour est 0, cela signifie ERREUR.

python


def get_url_root(url):
    if("http://" in url):
        url_delet_http = url.lstrip("http://")
        if("/" in url_delet_http):
            url_root = "http://" + url_delet_http[0:url_delet_http.find("/")]
            return url_root
    elif("https://" in url):
        url_delet_https = url.lstrip("https://")
        if("/" in url_delet_http):
            url_root = "http://" + url_delet_http[0:url_delet_http.find("/")]
            return url_root
    return 0

Code édité

Enfin, la partie où vous téléchargez réellement l'image. Si l'url contient " ../ ", utilisez la fonction ci-dessus pour obtenir l'url jusqu'au nom de domaine, Par exemple, modifiez la partie «..» de «../ sample.png» en «http: // sample.com / sample.png».

python


for j in range(0,(len_url-1)):
        url = number_url[j]
        if("../" in url):
            root_url = get_url_root(serch_url)
            if(root_url!=0):
                url = url.replace("..",root_url)
                print url
                download(url)
        else:
            download(url)

code

getimage.py


# -*- coding: utf-8 -*- 

import urllib
import urllib2
import os.path
import sys
from HTMLParser import HTMLParser

def download(url):
    img = urllib.urlopen(url)
    localfile = open(os.path.basename(url),'wb')
    localfile.write(img.read())
    img.close()
    localfile.close()

def get_url_root(url):
    if("http://" in url):
        url_delet_http = url.lstrip("http://")
        if("/" in url_delet_http):
            url_root = "http://" + url_delet_http[0:url_delet_http.find("/")]
            return url_root
    elif("https://" in url):
        url_delet_https = url.lstrip("https://")
        if("/" in url_delet_http):
            url_root = "http://" + url_delet_http[0:url_delet_http.find("/")]
            return url_root
    return 0

class imgParser(HTMLParser):

    def __init__(self):
        HTMLParser.__init__(self)

    def handle_starttag(self,tagname,attribute):
        if tagname.lower() == "img":
            for i in attribute:
                if i[0].lower() == "src":
                    img_url=i[1]
                    #Création d'un fichier qui recueille les URL des photos acquises
                    f = open("collection_url.txt","a")
                    f.write("%s\t"%img_url)
                    f.close()

if __name__ == "__main__":

    print('Saisissez l'URL du site sur lequel vous souhaitez obtenir la photo.')
    input_url = raw_input('>>>  ')
    serch_url = input_url
    htmldata = urllib2.urlopen(serch_url)

    print('Obtention actuelle de fichiers image...')

    parser = imgParser()
    parser.feed(htmldata.read())

    parser.close()
    htmldata.close()

    #Lire le fichier généré
    f = open("collection_url.txt","r")
    for row in f:
        row_url = row.split('\t')
        len_url = len(row_url)
    f.close()

    number_url = []

    for i in range(0,(len_url-1)):
        number_url.append(row_url[i])

    for j in range(0,(len_url-1)):
        url = number_url[j]
        if("../" in url):
            root_url = get_url_root(serch_url)
            if(root_url!=0):
                url = url.replace("..",root_url)
                print url
                download(url)
        else:
            download(url)

    print('Le téléchargement de l'image est terminé.')

    #Supprimer le fichier
    os.remove("collection_url.txt")

Recommended Posts

Télécharger en masse des images à partir d'une URL spécifique avec python
Téléchargement par lots d'images à partir d'une URL spécifique avec la version modifiée de python
Télécharger des images à partir de la liste d'URL en Python
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Convertissez des PDF en images en masse avec Python
Charger des images à partir d'une URL à l'aide de Pillow dans Python 3
Télécharger automatiquement des images avec grattage
Images en bordure avec python Partie 1
Avec skype, notifiez avec skype de python!
Télécharger le fichier csv avec python
Reconnaissance des nombres dans les images avec Python
Télécharger des images de «Irasutoya» à l'aide de Scrapy
Utilisation de Rstan de Python avec PypeR
Téléchargement de fichiers implémenté avec Python + Bottle
Installez Python à partir des sources avec Ansible
Impossible de télécharger des images avec Google_images_download
Extraire du texte d'images avec Python
Publiez plusieurs images Twitter avec python
Exécutez Aprili depuis Python sur Orange
Publier une image de Python sur Tumblr
Animez plusieurs images fixes avec Python
Charger une image gif avec Python + OpenCV
Appelez python de nim avec Nimpy
Charger fbx depuis python avec cinema4d
Travailler avec des images DICOM en Python
Télécharger et télécharger des images avec Falcon
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Collecter des informations sur Twitter avec Python (API Twitter)
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
Téléchargez le rapport XBRL de titres, rapport trimestriel, rapport financier d'EDINET / TDNET avec Python
[Note] Obtenir des données de PostgreSQL avec Python
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
Amplifiez les images pour l'apprentissage automatique avec Python
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Exclure les tweets contenant des URL avec tweepy [Python]
Type de téléchargement de partage HTTP réalisé avec Python
Capturer des images avec Pupil, python et OpenCV
Tweet de python avec Twitter Developer + Tweepy
Téléchargez les données de cours des actions japonaises avec Python
Efficacité commerciale à partir de zéro avec Python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Manipulation d'Azure CosmosDB à partir de Python Part.2
Acquisition d'images depuis une caméra avec Python + OpenCV
Télécharger des fichiers sur le Web avec Python
[python, openCV] base64 Reconnaissance faciale dans les images
Premiers pas avec Dynamo de Python boto
Télécharger Python
Obtenez des images d'utilisateurs spécifiques sur Twitter
Ajouter du bruit gaussien aux images avec python2.7
Téléchargez facilement des mp3 / mp4 avec python et youtube-dl!
Utilisation des fonctions C ++ de python avec pybind11
Importer et exporter des images GeoTiff avec Python
Lire des caractères dans des images avec Python OCR
Télécharger des images sur Google Drive avec Python
[Python] (Line) Extraire les valeurs des images graphiques
Enregistrez automatiquement les images de vos personnages préférés à partir de la recherche d'images Google avec Python
Collecter des informations depuis Twitter avec Python (construction de l'environnement)