Skip to main content

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, ...)

  1. Решить задачу

  2. Обратить внимание на следующие принципы:

  3. декомпозиция сверху вниз

  4. srp - принцип единственной ответственности

  5. термины предметной области

  6. уменьшение зависимости

  7. чистые функции

  8. цикломатическая сложность

python3 -m mccabe --min 5 module.py
flake8 --max-complexity 5
  1. понятные названия у переменных, функций, классов, модулей

  2. контекст ближе к коду (привязка к комитам, тикетам, комменты, документация, вики)

  3. разумное использование фишек python

  4. код на английском а не на python

  5. фичеризм - не слишком гибко, не слишком жестко, обобщать когда используется 2 раза

  6. тесты демонстрирующие не очевидное поведение

  7. статический анализ кода pycodestyle, flake8, ast

  8. Добавить setup.py для сборки программы в пакет

  9. Сдать дз в виде ссылки на репозиторий Критерии оценки: Задание считается выполненным, когда: Код запускается без ошибок и программа может получать ссылки по заданному запросу. Есть возможность сборки пакета - 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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

search_this-0.4.2-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page