Massen-Download-Bilder von einer bestimmten URL mit Python

Einführung

In dem zuvor geschriebenen "Batch-Download-Bilder von bestimmten Site-URLs mit Python" zum Beispiel

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

Dieses Mal habe ich das Problem behoben, dass ich das Bild aufgrund von FEHLER nicht herunterladen konnte. Allerdings ist dieses Programm grundsätzlich root auf URL? Ich denke an einen Fall, in dem es unterteilt ist (http: // domain name / hierarchy). (Ich kann ziemlich schlecht erklären und verstehe nicht, was ich sage (^^;) ↑)

Code hinzugefügt

Was ich in diesem Code hinzugefügt habe, ist eine Funktion namens "get_url_root". Argument: Vom Benutzer eingegebene URL Rückgabewert: URL bis zum Domainnamen. Wenn der Rückgabewert 0 ist, bedeutet dies FEHLER.

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

Bearbeiteter Code

Schließlich der Teil, in dem Sie das Bild tatsächlich herunterladen. Wenn die URL "../" enthält, verwenden Sie die obige Funktion, um die URL auf den Domainnamen zu bringen. Ändern Sie beispielsweise den Teil ".." von "../ sample.png " in "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]
                    #Erstellen einer Datei, in der die URLs der erfassten Fotos erfasst werden
                    f = open("collection_url.txt","a")
                    f.write("%s\t"%img_url)
                    f.close()

if __name__ == "__main__":

    print('Geben Sie die URL der Site ein, auf der Sie das Foto erhalten möchten.')
    input_url = raw_input('>>>  ')
    serch_url = input_url
    htmldata = urllib2.urlopen(serch_url)

    print('Derzeit werden Bilddateien abgerufen...')

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

    parser.close()
    htmldata.close()

    #Lesen Sie die generierte Datei
    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('Der Bilddownload ist abgeschlossen.')

    #Datei löschen
    os.remove("collection_url.txt")

Recommended Posts

Massen-Download-Bilder von einer bestimmten URL mit Python
Batch-Download-Bilder von einer bestimmten URL mit Python Modified-Version
Laden Sie Bilder von der URL-Liste in Python herunter
[Python] Laden Sie das Originalbild von der Google Bildsuche herunter
Konvertieren Sie PDFs mit Python in Massenbilder
Laden Sie Bilder von der URL mit Pillow in Python 3
Laden Sie Bilder automatisch mit Scraping herunter
Angrenzende Bilder mit Python Teil 1
Mit Skype benachrichtigen Sie mit Skype von Python!
Laden Sie die CSV-Datei mit Python herunter
Zahlenerkennung in Bildern mit Python
Laden Sie Bilder von "Irasutoya" mit Scrapy herunter
Verwenden von Rstan aus Python mit PypeR
Implementierter Dateidownload mit Python + Bottle
Installieren Sie Python von der Quelle mit Ansible
Bilder können mit Google_images_download nicht heruntergeladen werden
Extrahieren Sie mit Python Text aus Bildern
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Führen Sie Aprili von Python auf Orange aus
Poste ein Bild von Python auf Tumblr
Animieren Sie mehrere Standbilder mit Python
Laden Sie das GIF-Bild mit Python + OpenCV
Rufen Sie Python von Nim mit Nimpy auf
Laden Sie fbx aus Python mitinema4d
Arbeiten mit DICOM-Bildern in Python
Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Sammeln von Informationen von Twitter mit Python (Twitter API)
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
Laden Sie XBRL des Wertpapierberichts, des Quartalsberichts und des Finanzberichts von EDINET / TDNET mit Python herunter
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Verstärken Sie Bilder für maschinelles Lernen mit Python
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Schließen Sie Tweets mit URLs mit tweepy [Python] aus.
HTTP Split Download Typ mit Python gemacht
Bilder mit Pupil, Python und OpenCV aufnehmen
Tweet von Python mit Twitter Developer + Tweepy
Laden Sie japanische Aktienkursdaten mit Python herunter
Geschäftseffizienz von Grund auf mit Python
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Bearbeiten von Azure CosmosDB aus Python Part.2
Bildaufnahme von der Kamera mit Python + OpenCV
Laden Sie mit Python Dateien im Web herunter
[python, openCV] base64 Gesichtserkennung in Bildern
Erste Schritte mit Dynamo von Python Boto
Laden Sie Python herunter
Holen Sie sich Bilder von bestimmten Benutzern auf Twitter
Fügen Sie Bildern mit Python2.7 Gaußsches Rauschen hinzu
Laden Sie einfach mp3 / mp4 mit Python und youtube-dl herunter!
Verwenden von C ++ - Funktionen aus Python mit pybind11
Importieren und Exportieren von GeoTiff-Bildern mit Python
Lesen von Zeichen in Bildern mit Python OCR
Laden Sie Bilder mit Python auf Google Drive hoch
[Python] (Linie) Extrahieren Sie Werte aus Diagrammbildern
Speichern Sie automatisch Bilder Ihrer Lieblingsfiguren aus der Google Bildsuche mit Python
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)