Посты с тэгом beautifulsoup


Форма № 16

Преподаватели, работающие в российских ВУЗах, периодически сталкиваются с необходимостью предоставить администрации список своих научных и учебно-методических работ. Например, для (пере)избрания на должность, присвоения звания и т. д. Формат представления информации, форма № 16, разработан невесть когда и до сих пор используется в бюрократических недрах Министерства Науки и Высшего Образования РФ. Мне стало лень заполнять эту форму вручную и я написал небольшой python сценарий, который генерирует нужную таблицу на основе информации, полученной из научной электронной библиотеки elibrary.ru. Возможно, кому-то это будет интересно, так что ниже приведено описание этой процедуры...

Читать далее


Облегчаем себе жизнь с помощью BeautifulSoup4

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

Статья ориентирована на новичков, таких же как и я.
Читать дальше →



Пишем телеграм-бота, который будет переводить интернет статьи в mp3-файлы

Всем привет! В данной статье я поделюсь своей реализацией бота для telegram, который может переводить статьи из интернета в mp3-файлы. Для этого я буду использовать python 3.6 и соответствующие библиотеки. Итак, приступим...

Читать далее


[Из песочницы] Делаем консольное приложение погода на Python с помощью requests и bs4

Привет, Хабр!

Сегодня я буду делать консольное приложение «Погода» на Python с помощью requests и bs4.
Что будет делать эта программа?

  1. Показывать погоду в вашем городе.
  2. Показывать температуру воздуха.
  3. Показывать осадки.
  4. Показывать влажность.
  5. И скорость ветра.

Фронт работ ясен, значит можно приступать.
Читать дальше →


От парсера афиши театра на Python то Telegram-бота. Часть 1


Я очень люблю оперу и балет, но не очень — отдавать большие деньги за билеты. Ежедневный просмотр сайта театра с тыканьем в каждую кнопку ужасно утомлял, а внезапно появлявшиеся билеты по 170 рублей на супер-составы бередили душу.
Чтобы автоматизировать это дело появился скриптик, который бежит по афише и собирает информацию о самых дешевых билетах на выбранный месяц. Запросы из серии «выдай список всех опер в марте на старой и новой сцене до 1000 рублей». Подруга обронила «а ты не Telegram-бота делаешь?». Такого в плане не было, но почему бы и нет. Бот родился, хоть и крутился на домашнем ноутбуке.
Потом Telegram заблокировали. Мысль запулить бота на рабочий сервер растаяла, да и интерес, чтобы довести функционал до ума, угас. Под катом рассказываю о судьбе сыщика дешевых билетов с самого начала и о том, что с ним сталось после года использования.


Парсим мемы в питоне: как обойти серверную блокировку

Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 2k17, уходящие навсегда, как совесть Electronic Arts.



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

Читать дальше →


Селекторы CSS и BeautifulSoup

Бывает нужно проверить наличие элемента на странице, узнать значение атрибута какого-то тега или сделать ещё что-то такое с HTML-документом (HTML, а не XML). Я для таких вещей использовал BeautifulSoup - он работает примерно так, и делает это хорошо.

>>> html = '<html lang="ru">...</html>'
>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> soup.find("html").get("lang")
ru

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

soupselect добавляет нужную функциональность.
>>> html = '<html lang="ru"><div class="title"><h3>foo</h3></div></html>'
>>> from BeautifulSoup import BeautifulSoup as Soup
>>> from soupselect import select
>>> select(soup, 'div.title h3')
[<h3>foo<