Программирование Python для SEO специалиста (2018)

[Сергей Черненко] Python для SEO специалиста (2018)

3aaf0a6b3f3c245906c51cc1035a3bda.gif
ПРОГРАММА КУРСА
1. Почему Python?

  • Обзор языков
  • Компилятор и интерпретатор
  • Бэкенд и Фронтенд
  • Windows и Unix
  • Почему Python
  • Установка Python
  • Настройка окружения, PyCharm
  • Режим консоли
  • print('Hello world!')
  • Калькулятор
2. Программа как алгоритмы и данные
  • Какие данные обрабатывает Python
  • Integer
  • Float
  • String
  • List
  • Tuple
  • Set
  • Dict
  • Bool
  • Byte
  • None
  • mutable & immutable
  • dir, help, type
3. Условия, Циклы, Ошибки
  • if
  • for
  • while
  • генераторы
  • обработка ошибок
  • сортировка массивов
  • поиск элементов в массиве
  • слияние массивов
  • вычитание массивов
  • оперативная память
  • быстродействие, сложность алгоритмов
4. Функции, модули, пакеты
  • Создание функции
  • Вызов функции
  • Повторное использование функций
  • Модули и пакеты
  • Стандартная библиотека
  • Библиотека пакетов PyPi, GitHub
  • Менеджер пакетов pip
  • Виртуальное окружение
  • Установка пакетов (Удаление и Обновление)
  • requirements.txt
  • Отличие пакета от фреймворка
5. Классы
  • В Python всё класс (объект)
  • Создание класса
  • Свойства класса и методы класса
  • Наследование, Метаклассы
  • Магия Python
6. Работа с файлами, оператор with
  • открытие файла
  • режим работы с файлом
  • чтение файла
  • поиск по файлу
  • запись в файл
  • огромные файлы
7. Тексты и Картинки
  • Библиотека NLTK
  • Разбивка текста на предложения
  • Разбивка текста на n-граммы
  • Приведение слов в базовую форму, падежи
  • Подсчет частотности
  • Семантическая близость
  • Похожесть текстов
  • Уникальность текстов
  • Проверка на ошибки
  • Библиотека PIL и работа с картинками
8. Базы данных
  • Где взять базу данных
  • SQL и noSQL
  • модуль sqlalchemy
  • соединение с базой данных
  • создание структуры базы данных, взаимосвязи
  • чтение, запись, обновление, удаление
  • выполнение сложных запросов
  • Redis
9. Многопоточность и ThreadPoolExecutor
  • зачем многопоточность
  • Threading и ThreadPoolExecutor
  • где эффективна, а где не эффективна
  • GIL
  • Общие ресурсы
  • Очередь
  • Эффективное использование
10. Selenium webdriver
  • полноценный браузер
  • Headless режим
  • выполнение сценариев
  • заполнение и отправка форм
11. Асинхронность, aiohttp client
  • Идея асинхронного кода
  • Синтаксис асинхронного кода
  • корутины вместо функций
  • event loop
  • асинхронные библиотеки
  • aiohttp client
  • асинхронные http запросы
  • выполнение синхронного кода вместе с асинхронным
12. Разработка сайта на aiohttp server
  • Модель MVC приложений
  • Создаем простейшее web приложение
  • роутинг
  • обработчики
  • шаблоны (jinja2)
  • динамические данные
  • запуск приложения
  • deployment приложения
  • настройка сервера nginx
  • запуск приложения через systemd
13. Дополнительные темы
  • Cron и планирование заданий
  • Прокси-сервера
  • Полнотекстовый поисковый движок Elasticsearch
  • Установка и запуск Elasticsearch
  • Создание индекса Elasticsearch
  • Запросы в Elasticsearch
  • Elasticsearch на службе сеошника
  • Amazon S3 Bucket - безграничное хранилище данных
  • Полезные API (Google API, Serpstat API, Advego API)
  • Парсинг ВебАрхива
СКАЧАТЬ КУРС:
 

Рекламное сообщение
кто-то из сеошников сталкивался в процессе работы с необходимостью программировать на Питоне?
Хоть и не прямо сеошник, я вот что то вообще не могу сообразить для чего питон именно сеошнику. На питоне можно запилить мощный краулер на Scrapy-фреймворке или делать что-то более легковесное с помощью bs4/lxml/requests библиотек - но это больше в сторону сбора данных/мониторинга цен/переноса сайта/формирования фида с товарами/сбор лидов, что как то слабо подходит для чистого seo-шника. На питоне можно автоматизировать ряд задач по формированию загрузки кампаний для Директ/Adwords с сайта (если он хорошо структурирован) либо работа с API этих сервисов. Можно собирать очевидные ключи с сайта или текста по паттернам через регулярные выражения(например модели и названия товаров если у них есть четкая логика) и использовать их для контекстной рекламы. Можно сделать биддер для управления ставками через API Директа/Adwords. Можно через Selenium или любой js-движок попробовать написать бота для размещения объявлений и сообщений на досках, порталах, форумах, стенах сообществ.
Вот пожалуй навскидку то, что можно делать с питоном в сфере маркетинга. Для SEO тут конечно маловато вариантов. Хотя есть вариант с парсингом выдачи поисковиков типа Яндекс\Google - но поверьте это не тривиальная задача, которая потребует гораздо больше чем просто прохождение вот такого курса, к тому же есть сервисы (платные) всякие кластеризаторы типа SemRush, которые уже дают готовые данные. Ну и есть вариант еще с семантическим анализом текста какой то страницы, чтобы определить плотность текста, частоту и прочие параметры контента (с чем впрочем отлично справляются такие сервисы как Тургенев и проч).
Но в данном случае, это все семечки, так как Python не будет лишним в любом случае - вопрос в другом, чему именно учат в этом курсе: если программированию с помощью языка Python - то советую взять "дайте две"; если же скриптерству потипу "возьми эту библиотеку, импортни вот эту функцию, скорми ей ссылку и параметр тру, и гля смотри все работает" - то это просто будет потеря времени. Курс не смотрел пока - не знаю как оно здесь, но по опыту у меня не очень хорошее предчувствие из-за такого названия "Python для SEO специалиста ". Нету никакого Python для специалиста SEO. Или какого угодно специалиста. Или человек понимает, что такое типы данных, для чего они нужны, как управлять потоком данных и как преобразовать данные с помощью средств языка Python - или нет. И если понимает - он сможет найти решение к прикладной задаче будь то SEO или какая другая. Как то так.
 

Последнее редактирование:
чему именно учат в этом курсе: если программированию с помощью языка Python - то советую взять "дайте две"
Может быть посоветуете что нибудь из такого рода?
 

Может быть посоветуете что нибудь из такого рода?
Мой совет (разумеется это из личного опыта и является только лишь моим мнением):
Если вы хотите изучать ЛЮБОЙ язык программирования, то начинать лучше с английского языка. Кто бы что бы Вам не говорил, какие бы русскоязычные видеокурсы и тем более не дай бог книги по Python, Ruby и другим языкам не рекомендовал, нужно понять одно: без английского языка на уровне чтения айтишной техлитературы Вы далеко не уедете. Во-первых, код на английском и зачастую названия переменных и функций в библиотеках говорят сами за себя, во-вторых, англоязычное ИТ-комьюнити не в пример шире и информативней (просто возьмите StackOverflow, Medium, Quora, GitHub, Reddit, блоги на Ютьюб(например того же Corey Shaffer) и кучу сайтов-блогов) и сравните это с нашим Хабром и русскоязычными ветками в том же StackOverflow и все поймете. В третьих, вся актуальная документация (latest version) по языкам и их библиотекам на английском и прекрасно написана, зачастую даже гораздо понятней и наглядней обучающих книг (если брать Python, это доки Scrapy, Django, Flask, Requests, BeautifulSoup, Pillow и еще куча прекрасно документированных библиотек). Есть интерактивные сервисы типа Codesignal и куча их еще - они позволяют решать задачи и челенджи через приложение прямо в браузере, что также нехило прокачивает.
Это не значит что надо тратить время изучая английский язык по детским книгам Ганса Христиана Андересена или адаптированной под неносителей версии "Алисы в стране чудес". Если есть школьный уровень хотя бы какой то берете английскую книгу - в случае с Python это могут быть:
Python Journey from Novice to Expert
A Byte of Python
Automate the Boring Stuff with Python
Dive into Python 3
Берете PDF, ставите Python, открываете консоль, и изучаете, переводите, кодите, набираете мясо. Первые две три книги будет тяжело и в плане английского и в плане программирования, но при должном усердии вы наберете базис в виде базового словарного запаса и грамматики, наберетесь терминологии, изучите синтаксис питона и дай Бог в голове начнет складываться картинка происходящего. Дальше пойдет легче. После этого можно взять какую нибудь прикладную область - например веб-программирование (на фреймворке Django или Flask) или веб-скрейпинг(BS4, lxml, requests, Scrapy) и начинать делать небольшие проекты по гайдам и кукбукам. Коих в избытке. На Udemy есть также годные курсы по питону, сейчас с ходу названия не вспомню. Разумеется все можно найти в сети.
Это путь неблизкий и требует немалого усердия и характера. Помимо самого программирования вам придется попутно узнавать кучу вещей по сетям, серверным технологиям, протоколам. Это идеальный вариант конечно, не у каждого хватит яиц и характера его пройти и это займет время - за все приходится платить так или иначе.

Если это не ваш вариант (не готовы тратить столько время, программирование не заходит, лень, не нужно для карьеры, ваши другие причины) - но автоматизировать что то с помощью простеньких скриптов и знать какие-то основы вам все таки нужно - то я полагаю среди русскоязычных авторов можно найти что-то годное и для таких целей. На Ютубе есть курс лекций по пайтон достаточно доходчивый и толковый на мой взгляд от Тимофей Хирьянов, еще кое что есть на канале Олега Молчанова по срейпингу и парсингу на питоне (хотя там он основы разжевывать не будет), наверно есть еще что-то - талантливых программистов в России хватает. Главное чтобы в таком курсе учили именно программировать (типы данных, логика, перевод из одного типа в другой, алгоритмы),а не вставлять куски кода через копипасту. Хотя вы должны понимать, что это будет не ТРУ и с таким подходом рано или поздно упретесь в стену и все равно придется учить английский дабы иметь доступ к докам-первоисточникам и топовым авторам в этой тематике. Русскоязычные книги по питону - просто забудьте что такое есть.

Сам выбрал первый путь, хотя до этого не раз предпринимал безуспешные попытки по второму. Вот такое мое мнение. Если есть альтернативные или контрмнения, или еще какие рекомендации - милости просим, высказывайте подискутируем.
 

Последнее редактирование:
Мой совет (разумеется это из личного опыта и является только лишь моим мнением)
.........
Не ожидал настолько развернутого ответа. Огромное Вам СПАСИБО.

Думаю "не у каждого хватит яиц и характера " это в каждом деле так. Не зря ж народная пословица гласит "Без труда - не выловишь и рыбку из пруда". Жаль только вот "удочку" в свое время никто не дал, а руками ловить не захотелось....Теперь приходится искать и наверстывать.

Чекнул "Тимофей Хирьянов" на ютубе - преподы с приятной дикцией мне нравятся - посмотрю скорее даже не из необходимости а для общего развития.
 

Так же имеет смысл формировать для себя практические с применением задачи. Код в папке не так стимулирует, как реальная задача в деле и которая крутиться на сервере. А так да английский вариант помощи и на русском из опыта, 80 % и 20% получается нагуглить. Так что английский в ИТ наше всё
 

Жаль только вот "удочку" в свое время никто не дал, а руками ловить не захотелось....Теперь приходится искать и наверстывать.
Сокрушаться по упущенному бесполезно - надо брать и делать или как минимум попробовать, будет интерес - будет и усердие - а регулярный труд принесет свои плоды так или иначе в любой области. Кстати мои первые книги на английском, которые я прочитал, были по подготовке к сертификации Cisco ICND1 и ICND2 (уровень CCNA, грубо говоря начальный по сетевым технологиям), реально поначалу каждое слово по словарю смотрел, структуру предложений не понимал (лез в грамматику смотрел) - в общем читал как черепаха и еще реально пытался вникать в сети, протоколы, модель OSI, ставил эмулятор сети, ковырялся в консоли виртуальных роутеров и свичей. Время на эти две книги ушло немало. Но это дало мне такой мощнейший пинок, какой я никогда в жизни ни от какого видео или учителя не получал. И заметьте все это начал делать только под тридцатник, при том что в школе и универе я учил немецкий, еле натягивая его на четверку, а информатики как таковой не было вообще. Вот так то. Потом стал изучать Python, читал много по английски, с большим трудом научился воспринимать на слух английскую речь(это реально было самое сложное для меня) - это открыло мне дорогу к просмотру видеокурсов с Udemy, CBTNuggets, Lynda, Pluralsight и ютуб-каналов. Разумеется, все это было непросто. И это я еще не прошел даже половины пути, очень многое нужно узнать, хотя оглядываясь назад я вижу большой прогресс в сравнении с тем, что знал.

Чекнул "Тимофей Хирьянов" на ютубе - преподы с приятной дикцией мне нравятся - посмотрю скорее даже не из необходимости а для общего развития.
Объясняет вроде бы неплохо, но преподает слишком классически, интерактива маловато, - по хорошему ему бы в консоли все это показывать с проектором а не на доске. Советую прошерстить на этом форуме варианты - возможно есть гораздо лучше, просто реально я русскоязычных авторов по питону смотрел очень мало и больше урывками. Повторюсь - не исключено что и этот курс не так плох - стоит посмотреть, если преподаватель реально учит как программировать.

Код в папке не так стимулирует, как реальная задача в деле и которая крутиться на сервере.
Тут полностью согласен. Самый большой прогресс, который я почувствовал в изучении Python, был как раз связан с практическими задачами - идеи мне кстати подкинула книга Automate the Boring Stuff with Python, есть и одноименный видеокурс от автора книги.
 

Сокрушаться по упущенному бесполезно - надо брать и делать или как минимум попробовать, будет интерес - будет и усердие - а регулярный труд принесет свои плоды так или иначе в любой области. Кстати мои первые книги на английском, которые я прочитал, были по подготовке к сертификации Cisco ICND1 и ICND2 (уровень CCNA, грубо говоря начальный по сетевым технологиям), реально поначалу каждое слово по словарю смотрел, структуру предложений не понимал (лез в грамматику смотрел) - в общем читал как черепаха и еще реально пытался вникать в сети, протоколы, модель OSI, ставил эмулятор сети, ковырялся в консоли виртуальных роутеров и свичей. Время на эти две книги ушло немало. Но это дало мне такой мощнейший пинок, какой я никогда в жизни ни от какого видео или учителя не получал. И заметьте все это начал делать только под тридцатник, при том что в школе и универе я учил немецкий, еле натягивая его на четверку, а информатики как таковой не было вообще. Вот так то. Потом стал изучать Python, читал много по английски, с большим трудом научился воспринимать на слух английскую речь(это реально было самое сложное для меня) - это открыло мне дорогу к просмотру видеокурсов с Udemy, CBTNuggets, Lynda, Pluralsight и ютуб-каналов. Разумеется, все это было непросто. И это я еще не прошел даже половины пути, очень многое нужно узнать, хотя оглядываясь назад я вижу большой прогресс в сравнении с тем, что знал.


Объясняет вроде бы неплохо, но преподает слишком классически, интерактива маловато, - по хорошему ему бы в консоли все это показывать с проектором а не на доске. Советую прошерстить на этом форуме варианты - возможно есть гораздо лучше, просто реально я русскоязычных авторов по питону смотрел очень мало и больше урывками. Повторюсь - не исключено что и этот курс не так плох - стоит посмотреть, если преподаватель реально учит как программировать.


Тут полностью согласен. Самый большой прогресс, который я почувствовал в изучении Python, был как раз связан с практическими задачами - идеи мне кстати подкинула книга Automate the Boring Stuff with Python, есть и одноименный видеокурс от автора книги.
Слушай, то есть ты имеешь ввиду, что нужно, в первую очередь, в английских книжках возиться (и пытаться понять для себя вообще что такое программирование, допустим, на Python)? Тогда где достать книги по программированию ИИ на Pythone? Буду очень благодарен за наводку.
 

Слушай, то есть ты имеешь ввиду, что нужно, в первую очередь, в английских книжках возиться (и пытаться понять для себя вообще что такое программирование, допустим, на Python)? Тогда где достать книги по программированию ИИ на Pythone? Буду очень благодарен за наводку.
Ну это мое мнение. И я расписал почему так думаю. Английский язык - это такой же инструмент для программиста, как алгоритмы, типы данных, логика, считаю, что это оправданно, более того необходимо.
По поводу ИИ - мне сложно быть советчиком в этой теме, так как эту тему я не затрагивал в практическом плане (так уж сложилось, что изучая питон, я упор сделал на веб-скрейпинг и веб-разработку ). К тому же ИИ - тема довольно обширная и сложная (сама по себе). Если с нуля начинаешь, лучше взять сначала что-то по основам общенаправленное, чтобы понять общую картину и возможности(какую то из этих книг например).
Python Journey from Novice to Expert
A Byte of Python
Dive into Python 3

Если у тебя есть какой-то опыт в программировании, то можно все таки взять какую то более общенаправленную книгу по Data Science все таки, чтобы понять куда идти дальше и что собой представляет вообще эта область. По книжкам вариантов сейчас масса. Вообще книжки издательства PucktPub мне нравятся (Learn Python with Python eBooks and Videos from Packt), Search Beta from Packt, есть еще издательство Apress Search Results думаю можно попробовать что то по этой тематике у них. Большую часть найти в открытом доступе не проблема понятное дело, если будут сложности с поиском, обращайся, могу поискать. Но повторюсь - если нет опыта в программировании, советую начать с основ все-таки, а не прыгать сразу в такую продвинутую тему.
 

Тут нет однозначного совета и у каждого может получиться свой путь. Например если нет базы английского и предложить книжку по Pythone в которой автор предполагает что читатель владеет уже каким нибудь языком. Получим двойную проблему и редко кто такой путь дойдёт до конца.

Поэтому первое , это выбор вообще цели и что надо получить. Далее язык программирования уже будет инструментом.

Если есть ясность по двум пунктам, то 30% и выше входных знаний можно получить из видео курсов (как вариант Линда и другое. там лаконично , но доступно к пониманию) или выбрать книги на русском. Далее уже появится первый опыт и набор источников знаний в Интернете (много было озвучено выше).

Например мой первый опыт с Pythone был на Raspberry платформе. Система опроса данных с датчиков температуры и запись в базу с последующей визуализацией. Так как была польза, то и проект доделан до финала.

Стоит идти от простого к сложному.
 

Обратите внимание

Назад
Сверху