Get search results from Google and DuckDuckGo
Project description
OTUS Homework 1 search this
Оглавление
Домашнее задание
Создать программу-поисковик Цель: В этой самостоятельной работе тренируем умения: 1. Писать "чистый код" 2. Собирать пакеты Чтобы: Применять принципы написания чистого кода и сборку пакетов Задача: Создать программу поисковик (консольную) Пользователь вводит текст запроса, поисковую систему (google.com, yandex.ru, ...), количество результатов, рекурсивный поиск или нет, формат вывода (в консоль, в файл json, в csv) Программа находит в интернете начиная от стартовой точки все ссылки на веб-странице в заданном количестве (название ссылки и саму ссылку) Если поиск не рекурсивный, то берем ссылки только из поисковика, если рекурсивный, то берем первую ссылку, переходим, находим там ссылки, переходим, ... В зависимости от выбранного формата вывода сохраняем результат (текст ссылки: ссылка) либо в консоль либо в файл выбранного формата 0. Создать репозиторий для нового проекта (gitlab, github, ...)
-
Решить задачу
-
Обратить внимание на следующие принципы:
-
декомпозиция сверху вниз
-
srp - принцип единственной ответственности
-
термины предметной области
-
уменьшение зависимости
-
чистые функции
-
цикломатическая сложность
python3 -m mccabe --min 5 module.py
flake8 --max-complexity 5
-
понятные названия у переменных, функций, классов, модулей
-
контекст ближе к коду (привязка к комитам, тикетам, комменты, документация, вики)
-
разумное использование фишек python
-
код на английском а не на python
-
фичеризм - не слишком гибко, не слишком жестко, обобщать когда используется 2 раза
-
тесты демонстрирующие не очевидное поведение
-
статический анализ кода pycodestyle, flake8, ast
-
Добавить setup.py для сборки программы в пакет
-
Сдать дз в виде ссылки на репозиторий Критерии оценки: Задание считается выполненным, когда: Код запускается без ошибок и программа может получать ссылки по заданному запросу. Есть возможность сборки пакета - 4 баллов
Дополнительно:
- Проверки flake8 и flake8 --max-complexity 5 не выдают ошибок 1 балл
- Работает рекурсивный поиск 1 балл
- Есть возможность выбора: поисковой системы 1 балл количества результатов 1 балл рекурсивный поиск или нет 1 балл вариант вывода (консоль, json, csv) 1 балл
Итого:4 + 1 + 1 + 1 + 1 + 1 + 1 = 10 баллов Рекомендуем сдать до: 07.06.2020
Описание
Искать можно в Google и DuckDuckGo. Иногда поиск в Google занимает около двух минут, иногда выдает сразу. DuckDuckGo работает быстро, но если слишком часто делать запросы, то DuckDuckGo банит на некоторое время.
Установка
pip install search-this
Использование
$ search_this -h
usage: search_this [-h] -q QUERY [-e {google,duck}] [-c COUNT] [-l {console,json,csv}]
optional arguments:
-h, --help show this help message and exit
-q QUERY, --query QUERY
Query for searching. Words define in qoutes.
-e {google,duck}, --engine {google,duck}
Choose the search engine. Default: Google.
-c COUNT, --count COUNT
Count of results. Default: 1.
-l {console,json,csv}, --logging {console,json,csv}
Information ouput. Default: console.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for search_this-0.4.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b292798f257f9a371af5f6d6cd4b17fe01c0d4b86e1e678fbcee50701c010298 |
|
MD5 | 539e9fb9e8797eb33fe1722c100bcaf9 |
|
BLAKE2b-256 | e241d8694167e421813e2052cd42c2d9ffd2d697926431bcc8117dc1e58b7aad |