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 details)

Uploaded Python 3

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

Hashes for search_this-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b292798f257f9a371af5f6d6cd4b17fe01c0d4b86e1e678fbcee50701c010298
MD5 539e9fb9e8797eb33fe1722c100bcaf9
BLAKE2b-256 e241d8694167e421813e2052cd42c2d9ffd2d697926431bcc8117dc1e58b7aad

See more details on using hashes here.

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