Парсер поисковой выдачи на Python и PyQT
Я всегда хотел написать программу, которая сможет отвечать на мои вопросы, используя информацию из интернета. Благодаря Python и поиску от mail.ru моя мечта сбылась. Данная программа, подобно искусственному интеллекту может ответить на большинство вопросов.
На самом деле программа работает очень просто. Используется поисковики от mail.ru и парсинг результатов поиска. Текст статей, найденных по запросу очищается от лишней рекламы, меню, и прочих неважных вещей с помощью нехитрого алгоритма.
В итоге мы получаем программу, которая в ответ на какой-либо вопрос выдает несколько релевантных, понятных ответов.
Исходники можно скачать тут:
search.zip
Для работы программы должен быть установлен Python 3.6, PyQT5, и модуль html2text (pip install html2text).
Можно указать какое количество ответов на вопрос нужно найти - число может быть от 1 до 8. По умолчанию программа выдает 3 ответа, переключаться между которыми можно нажимая кнопки "Следующий ответ" и "Предыдущий ответ". Чем меньше ответов указано тем быстрее работает программа.
Очищение текста от лишних символов происходит достаточно просто - сперва весь html код страницы преобразуется в текст, далее текст делится на предложения, разделенные точкой, и другими знаками, на которые могут заканчиваться предложения.
Из полученного массива удаляются слишком короткие предложения, и предложения начинающиеся со странных символов. Далее, предложения которые прошли фильтрацию, складываются в абзацы, и если получается достаточно длинный текст - он используется в качестве ответа на вопрос.
Такая несложная фильтрация позволяет избавиться от 80% лишнего текста, который присутствует вокруг основной статьи на странице (менюшки, анонсы, реклама). Выдается осмысленный текст, в большинстве случаев релевантный поисковому запросу.

