Функция Python на основе Scrapy для полного обхода веб-сайта

Недавно я обнаружил Scrapy, который я считаю очень эффективным. Однако я действительно не понимаю, как встроить его в более крупный проект, написанный на питоне. Я хотел бы создать паука обычным способом, но иметь возможность запускать его по заданному URL-адресу с помощью функции

start_crawl(url)

который запустит процесс сканирования на заданном домене и остановится только тогда, когда все страницы будут просмотрены.


person Mermoz    schedule 21.07.2010    source источник


Ответы (1)


Скрап гораздо сложнее. Он запускает несколько процессов и использует многопоточность. Так что на самом деле нет никакого способа использовать его как обычную функцию Python. Конечно, вы можете импортировать функцию, запускающую сканер, и вызывать ее, но что тогда? У вас будет нормальный лоскутный процесс, который взял под контроль вашу программу.

Вероятно, наилучший подход здесь — запустить scrappy как подпроцесс вашей программы и взаимодействовать с ним, используя базу данных или файл. У вас есть хорошее разделение между вашей программой и поисковым роботом, а также надежный контроль над основным процессом.

person Tomasz Wysocki    schedule 22.07.2010
comment
Да, как минимум, в файл можно было записать интересную информацию. Затем проверьте файл из основного приложения. Scrapy определенно разработан как отдельное приложение, которое записывает данные в «хранилище данных». - person nate c; 23.07.2010