У меня есть набор данных на 270 МБ (10000 html файлов) на моем компьютере. Могу ли я использовать Scrapy для сканирования этого набора данных локально? Как?
Python Scrapy для автономных (локальных) данных
Ответ 1
Хостинг хостинга SimpleHTTP
Если вы действительно хотите разместить его локально и использовать scrapy, вы можете выполнить его, перейдя в каталог, в котором он хранится, и запустите SimpleHTTPServer (порт 8000, показанный ниже):
python -m SimpleHTTPServer 8000
Затем просто наведите отметку на 127.0.0.1:8000
$ scrapy crawl 127.0.0.1:8000
файл://
Альтернатива заключается в том, чтобы просто вызвать скрининг непосредственно на набор файлов:
$ scrapy crawl file:///home/sagi/html_files # Assuming you're on a *nix system
Обертка
Как только вы настроили свой скребок для scrapy (см. пример dirbot), просто запустите обходчик:
$ scrapy crawl 127.0.0.1:8000
Если ссылки в html файлах являются абсолютными, а не относительными, они могут работать неправильно. Вам нужно будет самостоятельно отредактировать файлы.
Ответ 2
Перейдите в папку Dataset:
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.
Не нужно идти на Scrapy!