kratzen Sie die Datei mit html gespeichert auf dem lokalen system
Zum Beispiel hatte ich eine Website "www.example.com"
Eigentlich will ich mich kratzen Sie den html-von dieser Website durch die Speicherung auf dem lokalen system.
so zum testen habe ich gespeichert, dass die Seite auf meinem desktop als example.html
Nun ich hatte geschrieben das spider-code für diese wie unten
class ExampleSpider(BaseSpider):
name = "example"
start_urls = ["example.html"]
def parse(self, response):
print response
hxs = HtmlXPathSelector(response)
Aber wenn ich den oben stehenden code ausführen, erhalte ich diese Fehlermeldung, wie unten
ValueError: Missing scheme in request url: example.html
Endlich meine intension ist es, zu kratzen, die example.html
- Datei besteht aus www.example.com
html-code, gespeichert in meinem lokalen system
Kann irgend jemand mir empfehlen, wie zu ordnen, dass example.html Datei in start_urls
Vielen Dank im Voraus
- Sie könnten aktivieren Sie den HTTP-Cache der middleware zu speichern auf Ihrer Festplatte. Grundsätzlich können Sie die Wiedergabe einer früheren kratzen ausführen, je nach dem timeout, die Sie für die HTTP-Cache-middleware.
- Trekhaak: vielen Dank für u r die Antwort, kann u geben Sie mir ein Beispiel, so dass seine weitere hilfreiche
- ich bin mir nicht sicher, aber Sie können versuchen:
start_urls = ["file:///home/local/cname/username/project/scrapy_project_modules/example/example.html"]
- ich schon genau das gleiche und bekam die Antwort
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Sie Crawlen können Sie eine lokale Datei über eine url in der folgenden form:
Es nicht erforderlich, einen http-server auf Ihrem Rechner installiert sein.
127.0.0.1
es sei denn, Sie sind servieren Sie die Datei über http, die dann benötigthttp://127.0.0.1/...
stattfile:///...
Können Sie die HTTPCacheMiddleware, die Ihnen die Fähigkeit der Spinne führen Sie aus dem cache. Der doc für die HTTPCacheMiddleware Einstellungen befinden sich hier.
Grundsätzlich hinzufügen die folgenden Einstellungen, um Ihre settings.py wird es funktionieren:
Diese jedoch benötigt, um eine erste Spinne über das web ausgeführt werden, um den cache füllen.
In scrapy, können Sie kratzen die lokale Datei mit:
Ich schlage vor, Sie überprüfen Sie es mit scrapy shell 'file:///path_of_directory/example.html'
dieser funktioniert bei mir heute auf Windows 10.
Ich habe um den vollständigen Pfad ohne"////.
Wenn Sie view source code von scrapy Anfrage zum Beispiel github . Können Sie verstehen, was scrapy senden Anfrage an den http-server und erhalten benötigte Seite in der Antwort vom server. Ihr Dateisystem ist kein http-server. Für Testzwecke mit scrapy müssen Sie setup http-server. Und dann kann man zuordnen von urls zu scrapy wie
file:///path/to/file.html
funktioniert wie von Scrapy 1.5.0