Получение текста между тегами - bs4

189
22 сентября 2018, 01:20

Задача заключается в получении текста между html тегами

<a href="/valyuty/GBP-RUB" title="GBP/RUB">GBP/RUB</a>

использовать .text не дает результатов, ибо bs4 не отображает этот текст между тегов. Соответственно, когда юзаю .text дает пустую строку. Вот часть кода:

soup = BeautifulSoup(html, "html.parser")
table = soup.find("table", class_="quote_list")
for row in table.find_all("tr")[1:]:
    name = row.find("a")
    value = row.find("span")
    if name is None or value is None:
        continue
    print(name, value.text)

Вывод программы такой (таких строк больше, привел одну):

<a class="image_icon_chart" href="/valyuty/v-realnom-vremeni/GBP-RUB"></a> 82,7504

Нужно чтобы вывело содержимое между тегами. То есть name.text (что не работает). Как видно из вывода программы, bs4 вообще не видит текст между тегами, хотя он там есть! value.text выводит нормально!

Answer 1

Чтобы найти текст в <a> элементе c помощью BeautifulSoup (repl.it):

>>> import bs4
>>> soup = bs4.BeautifulSoup('<a href="/valyuty/GBP-RUB" title="GBP/RUB">GBP/RUB</a>', 'html.parser')
>>> soup.a.text
'GBP/RUB'
READ ALSO
Как сделать фиксированными хедер и меню при скролле?

Как сделать фиксированными хедер и меню при скролле?

Задача состоит в том что (пример):

143
Отправка поля по аякс, без перезагрузки

Отправка поля по аякс, без перезагрузки

Где я накосячил? Вот поле

133
Slick слайдер и Fancybox

Slick слайдер и Fancybox

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

226
div растягивает картинку внутри img

div растягивает картинку внутри img

Есть div, который имеет ширину 400px, и в нем есть тег imgКогда я загружаю квадратную картинку, он ее растягивает, а мне нужно, чтобы она было не растянута

176