Ich baue einen Web-Crawler mit Python. Aber die urlopen(url)
laden Sie die Dateien auf der Seite herunter. Ich möchte nur das HTML lesen und überspringen, wenn die URL auf eine herunterladbare Datei zeigt.Vermeiden Sie herunterladbare Dateien in Python Urlopen
Ich habe versucht, Timeouts
urlopen(url, timeout = 5).read()
so dass große Dateien verwenden, können vermieden werden, aber dies scheint nicht zu funktionieren.
Ich dachte auch, um eine Liste von gemeinsamen Dateierweiterungen zu machen, und überspringt die URL immer wenn die URL mit der Erweiterung endet.
flag = False
extensions = ['.zip', '.mp3',....]
for extension in extensions:
if url.endswith(extension):
flag = True
continue
if not flag:
x = urlopen(url).read()
Aber diese Methode wird nicht sehr effizient sein, nehme ich an.
Irgendwelche Ideen?
ich glaube, er will vor url öffnen? – ravigadila
Sie können nicht direkt, aber Sie können eine 'HEAD' Anfrage machen, um nur die Header zu bekommen, dann untersuchen Sie sie, um festzustellen, ob Sie ein vollständiges' GET' machen wollen. – tripleee