Простая версия поиска сайта
На основе поисковой системы кампуса новостей
- Идея реализации: заполните все новости из сети кампуса, храните ее в базе данных MySQL, затем разделите заголовки в базе данных, а затем превратите результаты сегментации слова в таблицу индексов. Введите содержание запроса, сегментируйте содержимое запроса, сопоставьте список сегментации слова в базе данных, сопоставьте соответствующий URL, а затем верните результат.
Среда развития
Библиотека зависимостей
- PymySQL: развлечение между Python и MySQL
- jieba: библиотека Python для причастия слова
Общая архитектура
Некоторые скалеры используют структуру скрещивания, чтобы запустить новостную сеть Инженерного университета и технологий Liaoning. Описание основных частей структуры скраски:
- Файл IntusPider.py: основной процесс извлечения информации о веб-странице, используя вложенные циклы, используя алгоритмы первого глубины для выполнения рекурсивных вызовов, разрабатывая все страницы HTML-новостных новостных лиц Liaoning University, извлечение необходимой информации (заголовок, URL) и сохранение его объекта. Метод анализа, используемый Clawlers, - это xpath
- items.py определяет объект для ползания.
- Pipeline.py сохраняет сохраненные объекты в базе данных MySQL через интерфейс MySQL. Другие файлы представляют собой некоторые файлы конфигурации, и изменений практически не существует, и расположение изменений было прокомментировано. Часть гусеницы заканчивается здесь.
Общая идея поисковых систем: причастие названия, хранящихся в базе данных, и устанавливают индекс ключевых слов. Во -вторых, на основе частоты ключевых слов установлена индексная таблица ключевых слов и вхождений. Основной документ Описание:
- Intu.py: построение таблицы баз данных, возьмите данные, ползущие Clawler, выполните сегментацию слов и сохраните их в переходных и обратных таблицах соответственно.
- Worth.py: Poard Table, определите компонент класса
forwardIndexTableItem , укажите содержимое массива в таблице, а в классе Table Forward forwardIndexTable причастие заголовка выполняется и сохраняется в таблице базы данных. - Лексикон: сегментация слов, определить операцию: Получить его идентификатор через слова, получить слова через ID, установить список сегментации слов и загрузить список сегментации слов;
- Backwardlist: обратная таблица, обработка данных в таблице вперед.
- LinesEngine: класс поисковых систем, запустите этот файл напрямую, вы можете вернуть соответствующий заголовок и URL, запросив введенные вами слова. Ядро состоит в том, чтобы сегментировать входное содержимое, а затем сортировать соответствующий заголовок в соответствии с ключевым словом, а затем распечатать первые 10 строк в соответствии с количеством ключевых слов HIT.
Примечания и недостатки:
- Прежде всего, гусеница статична. Если в базе данных есть дублируемые названия, вставка данных не удастся. Таблица должна быть очищена и повторно покраснеть.
- Содержание базы данных исправлено.
- Скорость попадания в поисках связана с точностью причастия заикания. Когда ползание, макет веб -страницы очень ясна, и новости, которые я заполнял, не дублируется.
- В будущем вы можете добавить веб -страницу, поиск через веб -сайт и создать веб -интерфейс.
- Crawlers и Searches являются независимыми, а другие новостные сети также могут заполняться, просто нужна часть Crawler.
Как использовать
- Подготовка среды зависимости: среда Python3, структура скрещивания, установка PymySQL, установка библиотеки Word Jieba, установка MySQL, база данных MySQL MyTable и таблица данных Intu.
- Первый клон GIT в указанный каталог
- Откройте консоль под Windows, введите соответствующую папку и введите
scrapy crawl Intu - Подождите результата ползания, и ползание закончилось.
- Запустите файл seachengine.py и введите текстовый контент, который вы запросите