Category: it

Category was added automatically. Read all entries about "it".

facepalm

Продолжаем играться с программкой. Хит-парад моего выпускного. Июнь 1994

Расширил возможности программки - теперь она сначала вытаскивает исполнителя и песню, а следующим шагом ищет в Ютуб клипы. Ну и на выходе выдает табличку, которую можно вставить в ЖЖ.
Что получается - можно посмотреть под катом. Работает несколько секунд. Раньше на эти же действия вручную тратил кучу времени.
Как это работает.
1) Парсим сайт https://www.officialcharts.com/charts/
Ребята сильно не морочились - после /charts/ добавляем дату в формате ГГГГММДД и получаем хит-парад Великобритании на указанную дату.
Ну то есть - https://www.officialcharts.com/charts/20100101/ - это хит парад на 1 января 2010 года.

2) Спасибо Python - есть отличный парсер HTML - Beautiful Soup 4. Разбирает на раз странички. Нам надо найти все div класса "title-artist". Внутри него еще два div - artist и title - исполнитель и песня. Вытаскиваем текст - получаем имя исполнителя и название песни.

3) Идем на Ютуб. Строка поиска Ютуб - https://www.youtube.com/results?search_query=depeche+mode+enjoy+the+silence - после search_query - название исполнителя и песни. В результате получаем страничку с найденными клипами. Но Ютуб не так прост, как ребята с officialcharts - HTML там динамический. Ну и тут у нас есть решение. Подключаем Selenium WebDriver. Это такая программка, которая управляет браузером (в проекте использовал Firefox, но есть и для Google). То есть код на Python автоматизирует действия пользователя - переходит на нужные странички, как если бы обычный человек сидел за компом и работал с браузером. Естественно, Ютуб считает, что все нормально и кто-то серфит странички через браузер, но очень быстро, правда:). В полученной страничке находим объект a (anchor) с id-шником - "video-title"
В его атрибуте href хранится ссылочка на клип - https://www.youtube.com/watch?v=aGSKrC7dGcY. Итак, ссылочка у нас есть, но..

4) Для встраивания клипа с ютуба в запись блога надо вставить текст типа:
<iframe width="560" height="315" src="https://www.youtube.com/embed/aGSKrC7dGcY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Видим, что в поле src есть ссылочка, похожая на нашу, полученную в пункте 3, но не совсем такая. Но вот если заменить watch?v= на embed/ - будет то, что надо.

5) Итак, имеем все необходимые данные для получения текста на запись в блог. Но, чтобы подготовить текст HTML, воспользуемся библиотекой jinja2. На основании HTML шаблона по нашим данным создается HTML файл. И его можно и на экран вывести и в браузере посмотреть.

Кому интересно - проект на Github https://github.com/Iehtu/charts
Collapse )

Collapse )
Buy for 10 tokens
Buy promo for minimal price.
я

Сантехник и программист - оказывается много общего:)))


Откуда такие мысли - чинил все выходные унитаз:)
Естественно - никакого описалова. В инете -куцые кусочки примеров (aka кода, называя всё программистским языком). Сделал первую попытку - более менее заработало. Но, крышку не смог поставить, в итоге бачок стоял открытым несколько недель. Но работало. Считаем за альфа-версию.
Первая попытка присобачить обратно бачок путем использования грубой силы ни к чему не привела. Потом кое-как разобрался в этой хитрой штуковине (читай, чужой код), но не во всём:). В итоге бачок поставил, но напор воды - слабый:) Так отработало день. Потом разобрался до конца. И уже поняв как всё устроено на следующий день, с использованием стандартных интерфейсов, сделал таки и крышку и нормальный напор.
P.S. Ну и без говна и палок тоже не обошлось. Сломался крючок, который поднимает клапан слива воды. Сделал его из двух пластиковых жгутов:) Не эстетично, но зато настраивается и работает:)