Данный проект является реализацией поисковой системы по статьям хабра. Любая поисковая система состоит из двух основых этапов:
- Сбор информации и построение индекса – веб-краулер;
- Поиск информации в индексе по запросу пользователя – реализовано в виде клиент-серверного приложения.
Для запуска понадобится интерпретатор python 3 версии. Понадобятся библиотеки: Flask, BeautifulSoup, html5lib и Pickle
Как ни странно, для того чтобы что-то найти сначала нужно это что-то проиндексировать (и только в таком порядке).
Для запуска веб-краулера необходимо выполнить файл Crawler.py в папке crawler.
Все настройки краулера находятся в settings.py:
- CRAWL_DELAY – задержка между запросами к хабру, по правилам сайта должна быть не меньше 10 секунд, иначе есть шанс получить бан, но мы ведь те еще хулиганы;
- MAX_PAGE_COUNTER – количество страниц которые Вы хотите проиндексировать;
- START_PAGE_INDEX – индекс статьи на с которой необходимо начать.
Результатом работы краулера будет файл hashindex.pkl в папке Data, в котором будет хранится индекс с целью дальнейшего поиска в нем.
Для запуска необходимо выполнить файл SearchServer.py в папке searchServer. Настрой также хранятся в settings.py:
- HOST – ip-адрес, на котором Вы хотите запустить сервер, по умолчанию localhost;
- PORT – номер порта, по умолчанию стоит None – приложение выберет его за Вас;
- SPELL_CHECKER – включает првоверку орфографии если значение True; При старте серверной части сначала загрузятся все необходимые модули (словарь, индекс), потом сам сервер. Когда он будет готов, на экране Вы увидете адрес по которому можно перейти в браузере и начать что-то искать.
Наша замечательная презентация