Ich habe ein 270MB-Dataset (10000 HTML-Dateien) auf meinem Computer. Kann ich Scrapy verwenden, um dieses Dataset lokal zu crawlen? Wie?Python Scrapy auf offline (lokale) Daten
13
A
Antwort
29
SimpleHTTP Server Hosting
Wenn Sie wirklich wollen, dass es lokal hosten und scrapy verwenden, können Sie sie dazu dienen, in das Verzeichnis durch die Navigation in gespeichert ist und führen Sie den Simple (Port 8000 weiter unten):
python -m SimpleHTTPServer 8000
Dann brauchen nur mit scrapy bei 127.0.0.1:8000
$ scrapy crawl 127.0.0.1:8000
file: //
Eine Alternative ist nur direkt scrapy Punkt auf den Satz von Dateien:
$ scrapy crawl file:///home/sagi/html_files # Assuming you're on a *nix system
Wrapping up
Sobald Sie Ihre Schaber für scrapy (siehe example dirbot) festgelegt haben, nur den Crawler aus:
Wenn Links in den HTML-Dateien absolut und nicht relativ sind, funktionieren diese möglicherweise nicht gut. Sie müssten die Dateien selbst anpassen.
10
zu Ihrem Datensatz Ordner gehen:
import os
files = os.listdir(os.getcwd())
for file in files:
with open(file,"r") as f:
page_content = f.read()
#do here watever you want to do with page_content. I guess parsing with lxml or Beautiful soup.
Keine Notwendigkeit für Scrapy zu gehen!
Sie wissen, dass die Vergabe des Bonus an Sie selbst keinen Hut verdient, oder? :-P –
@MartijnPieters Ich gebe Bounties auf mehrere. Schöne Ferien! Auf einer gewissen Ebene hoffte ich, dass der Fragesteller eine Antwort akzeptieren würde. : -/ –
Ihre Antwort ist sicherlich gründlich genug, um mindestens * einige * Feedback zu verdienen, in der Tat! –