LINUX.ORG.RU

html href parsing

 ,


0

1

Подскажите пожалуйста, что такое и как называется все то, что идет после двоеточия
И как это вытащить при помощи find_all() библиотеки BeautifulSoup


<a class="class_name" href="#link-jump">Text</a> :&nbsp;&nbsp;<b>1</b>

Называется html entities, иногда html special chars.

Если нужно преобразовать их в текст, у bs есть для этого параметр convertEntities (документация).

from BeautifulSoup import BeautifulStoneSoup
BeautifulStoneSoup("Sacr&eacute; bl&#101;u!", 
                   convertEntities=BeautifulStoneSoup.HTML_ENTITIES).contents[0]
# u'Sacr\xe9 bleu!'

Как вытащить средствами bs не подскажу, но в совсем крайнем случае можно обойтись регулярными выражениями.

grazor ★★
()

В смысле :&nbsp;&nbsp;<b>1</b>. <b>1</b> это сестринский (sibling) элемент <a>. :&nbsp;&nbsp; либо просто часть содержимого элемента родительского для <a> и <b>, либо может быть представлено как ещё один сестринский элемент. Не помню уже как оно там в BeautifulSoup, давно его курил. На сколько помню по стандарту этот кусок текста должен быть обёрнут виртуальным инлайновым (или не инлайновым) элементом (не отображающимся в DOM). Но эти тонкости я курил ещё более давно и совсем поверхностно, так-что ты мне не верь.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Все это действительно завернуто под <b>

pulya
() автор топика

У меня тоже было что-то наподобие, а я юзал HTMLParser(из коробки который) и он такое не мог переварить... А вот с bs4 отлично получилось, а как уже не помню :-(
Покури доки какие-нибудь. Даже на русском не плохие есть...
p.s. смотри на элемент что выше <a>

FIL ★★★★
()
Последнее исправление: FIL (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.