Téléchargement par lots d'images à partir d'une URL spécifique avec la version modifiée de python

introduction

Dans "Téléchargement par lots d'images à partir d'URL spécifiques avec python" que j'ai écrit en tant que version modifiée auparavant, par exemple Cette fois, j'ai résolu le problème que je ne pouvais pas télécharger l'image à cause d'ERREUR.

Code édité

Je ne jugeais que s'il y avait "../", mais je ne pensais pas au temps sans domaine, alors je l'ai ajouté. Judgment a résolu le problème en vous permettant de télécharger tel quel s'il y a "http: //" ou "https: //", ou en préfixant l'URL que vous avez entrée en premier.

Avant de modifier


    for j in range(0,(len_url-1)):
        url = number_url[j]
        print (url)
        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(input_url + url)

Après l'édition


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

Tous les codes

get_image.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_http = 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]
        print (url)
        if("../" in url):
            root_url = get_url_root(serch_url)
            if(root_url!=0):
                url = url.replace("..",root_url)
                print url
                download(url)
        elif("http://" in url):
            download(url)
        elif("https://" in url):
            download(url)
        else:
            download(input_url + url)

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

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

Recommended Posts

Téléchargement par lots d'images à partir d'une URL spécifique avec la version modifiée de python
Télécharger en masse des images à partir d'une URL spécifique avec python
Télécharger en masse des images à partir d'une URL de site spécifique avec python
Télécharger des images à partir de la liste d'URL en Python
Procédure d'installation pour Python et Ansible avec une version spécifique
Ecrire un script batch avec Python3.5 ~
Appeler des commandes depuis Python (édition Windows)
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Lire ligne par ligne à partir d'un fichier avec Python
Extraire des données d'une page Web avec Python
Créez un lot d'images et gonflez avec ImageDataGenerator
Raccourcissement d'URL avec Python
Python2 / numpy> Remplacer uniquement une colonne spécifique d'un fichier par les données de colonne d'un autre fichier> numpy.c_
Vérifier la version avec python
[Python] Démarrez un fichier de commandes à partir de Python et passez des variables.
Un mémo qui lit les données de dashDB avec Python et Spark
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Hash avec python et échapper à l'égosa d'un certain ministre
Télécharger automatiquement des images avec grattage
Images en bordure avec python Partie 1
Faites une loterie avec Python
Spécifiez la version python avec virtualenv
Créer un répertoire avec python
Avec skype, notifiez avec skype de python!
Télécharger le fichier csv avec python
Comment démarrer par lots un programme Python créé avec le notebook Jupyter
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Lisez le fichier en Python avec un chemin relatif depuis le programme
[Remarque] Utilisation d'un écran LCD à 16 caractères à 2 chiffres (1602A) de Python avec Raspeye
Passer la liste de Python vers C ++ par référence dans pybind11
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Reconnaissance des nombres dans les images avec Python
Exécuter le script Python à partir du fichier de commandes
[Python] Qu'est-ce qu'une instruction with?
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
Appeler C depuis Python avec DragonFFI
Toucher les objets Python d'Elixir
Télécharger des images de «Irasutoya» à l'aide de Scrapy
Utilisation de Rstan de Python avec PypeR
Faisons une interface graphique avec python.
Installez Python à partir des sources avec Ansible
Résoudre ABC166 A ~ D avec Python
Impossible de télécharger des images avec Google_images_download
Créer un environnement virtuel avec Python 3
python / Créer un dict à partir d'une liste.
Résoudre ABC168 A ~ C avec Python
Extraire du texte d'images avec Python
Publiez plusieurs images Twitter avec python
Créer un système de recommandation avec python
Exécutez Aprili depuis Python sur Orange
Publier une image de Python sur Tumblr
Animez plusieurs images fixes avec Python
Générer une URL pré-signée avec golang
Charger une image gif avec Python + OpenCV
[Python] Générer un mot de passe avec Slackbot