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


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

Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 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<