Ich habe ein Skript mit Scrapy und Splash, die verschiedene Daten von einer Website zieht, aber jetzt versuche, eine Möglichkeit zu finden, eine Offline-Kopie jeder Seite zu machen.Python Download eine vollständige Webseite (einschließlich CSS)
Ich habe folgende mit Scrapy versucht:
def parse(self, response):
filename = response.url.split("/")[-1] + '.html'
with open(filename, 'wb') as f:
f.write(response.body)
Und das mit urllib:
def parse(self, response):
url = response.url
file_name = 'aaa.html'
with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
Beide, die gut funktionieren, aber nur die HTML-Download-Datei. Ich benötige die ganze Seite (mit CSS inklusive) - gibt es eine Möglichkeit, dies zu tun, ähnlich wie das Speichern als "Webseite, vollständig", wenn Websites manuell mit Google Chrome gespeichert werden?
Ich vermute, etwas wie Selen könnte, aber denke, es wäre zu langsam für meine Anwendung (die 100 erfordert, manchmal 1000 von URLs). Vielen Dank.
Danke, ich versuche das und bin derzeit auf der Bearbeitung der Antwort fest, bevor ich es als HTML schreibe - ich bekomme den Fehler 'TypeError: ein Byte-ähnliches Objekt ist erforderlich, nicht 'str'', wenn Sie u singen Sie die Ersatzfunktion. Hast du bitte einen Ratschlag? Vielen Dank. –