Mam 270-milimetrowy zbiór danych (pliki 10000 html) na moim komputerze. Czy mogę użyć Scrapy, aby zaindeksować ten zestaw danych lokalnie? W jaki sposób?Python Scrapy na danych offline (lokalnych)
13
A
Odpowiedz
29
SimpleHTTP Server Hosting
Jeśli naprawdę chcesz go obsługiwać lokalnie i używać scrapy, można go obsługiwać, przechodząc do katalogu jest przechowywany i uruchomić SimpleHTTPServer (port 8000 pokazany poniżej):
python -m SimpleHTTPServer 8000
Następnie wystarczy wskazać scrapy na 127.0.0.1:8000
$ scrapy crawl 127.0.0.1:8000
file: //
Alternatywą jest po prostu punkt scrapy do zestawu plików bezpośrednio:
$ scrapy crawl file:///home/sagi/html_files # Assuming you're on a *nix system
Zamykając
Po skonfigurowaniu skrobaczki do scrapy (zob example dirbot), wystarczy uruchomić robota:
$ scrapy crawl 127.0.0.1:8000
Jeżeli linki w plikach html są absolutne zamiast względnej choć mogą one nie działać dobrze. Musisz samodzielnie dostosować pliki.
10
Przejdź do folderu zestawu danych:
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.
Nie trzeba iść do Scrapy!
Zdajesz sobie sprawę, że przyznanie premii sobie nie przyniesie Ci czapki, prawda? :-P –
@MartijnPieters Rozdaję bounty na kilku. Wesołych Świąt! Na pewnym poziomie miałem nadzieję, że pytający zaakceptuje odpowiedź. : -/ –
Twoja odpowiedź jest z pewnością wystarczająco dokładna, aby zasłużyć na co najmniej * kilka * opinii! –