suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python – Beim Crawlen von Bildern ist ein Problem aufgetreten. Der Download von urllib.request.urlretrieve in den angegebenen Ordner ist fehlgeschlagen.

Es gibt kein Problem, wenn Sie auf das Laufwerk D herunterladen, aber es gibt ein Problem, wenn Sie in das von mir erstellte Verzeichnis herunterladen (hauptsächlich, weil ich auf dem Laufwerk D ein Verzeichnis mit der Nummer vor dem Fragezeichen in erstellen möchte). Die URL (z. B. (http://v.yupoo) .com/photos/196...') funktioniert einfach nicht, da es viele Links gibt und die Anzahl der einzelnen Links unterschiedlich ist Diese Nummer dient als Name des Ordners zum Speichern der über diesen Link heruntergeladenen Bilder.)
Der Quellcode lautet wie folgt:
import urllib.request
import re
import os

py erfasst Seitenbilder und speichert sie lokal

Seiteninformationen abrufen

url_all =['http://v.yupoo.com/photos/196...',
'http://v.yupoo.com/photos/196...',
'http://v .yupoo.com/photos/196...',
'http://v.yupoo.com/photos/196...',]

def getHtml(url):

html = urllib.request.urlopen(url).read()
return html

Erhalten Sie Bilder mit regulären Ausdrücken

def getImg(html):

reg = 'src="(.+?\.jpg)"'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)

# print(imglist)

return imglist

für mich im Bereich(len(url_all)):

Schleifen Sie Bilder ab und speichern Sie sie lokal

html = getHtml(url_all[i])
list=getImg(html.decode())

print (url_all[1])

x = 0
for imgurl in list:
    print(x)
    filename = os.path.dirname(url_all[i])    
    filename2 = os.path.basename(filename)

os.mkdir('d:%s'% filename2)

    local='D:\%s\%s.jpg' %(filename2,x)
    print (local)
    urllib.request.urlretrieve(imgurl,local)
    x+=1

print("done")

Ausführungsfehler: (Win10 64-Bit-System, Python3.6)

Datei „C:Python36liburllibrequest.py“, Zeile 258, in urlretrieve

tfp = open(filename, 'wb')

FileNotFoundError: [Errno 2] Keine solche Datei oder kein solches Verzeichnis: 'd:46975340

Nach dem Testen

Der letzte so geschriebene Satz kann ausgegeben werden: urllib.request.urlretrieve(imgurl,'d:%s.jpg'% str(i*10+x))

Nach dem Test gibt es kein Problem mit den ersten beiden Sätzen. Fügen Sie den dritten Satz hinzu:

local='d:%s%s.jpg' %(filename2,x)

drucken (lokal)

urllib.request.urlretrieve(imgurl,local)

Die Fehlermeldung lautet wie folgt: (Wie oben)

Datei „C:Python36liburllibrequest.py“, Zeile 258, in urlretrieve

tfp = open(filename, 'wb')

FileNotFoundError: [Errno 2] Keine solche Datei oder kein solches Verzeichnis: 'd:46975340

Bitte sagen Sie mir, gibt es ein Problem mit diesem Weg? Wie soll es geschrieben werden.

给我你的怀抱给我你的怀抱2774 Tage vor1984

Antworte allen(1)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:56:50

    在保存之前,先检查一下目录是否存在,不存在则建立

    if not os.path.exists(file_path):
        os.mkdir(file_path)

    Antwort
    0
  • StornierenAntwort