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
File details
Details for the file search_this-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: search_this-0.4.2-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b292798f257f9a371af5f6d6cd4b17fe01c0d4b86e1e678fbcee50701c010298 |
|
MD5 | 539e9fb9e8797eb33fe1722c100bcaf9 |
|
BLAKE2b-256 | e241d8694167e421813e2052cd42c2d9ffd2d697926431bcc8117dc1e58b7aad |