@Fantinum

Проблема с кодировкой при парсинге русского сайта?

Возникает проблема с кодировкой при парсинге сайта https://beton24.ru/sochi/beton/
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen('https://beton24.ru/sochi/beton/')
bs = BeautifulSoup(html.read())
result = bs.findAll("span", "catalog-index__link-text")[1]
parse = str(result)

Чтобы вытащить цену бетона, конвертирую result в str, и он превращается в 'от\xa03\u2009836\xa0₽'
Кто сталкивался, как решить? Спасибо!
  • Вопрос задан
  • 5634 просмотра
Решения вопроса 1
igorzakhar
@igorzakhar
Смотрим HTML через, например, Chrome DevTools:

5b73266f7e7db479582268.png

Читаем в документации к BeautifulSoup 4 (раздел "Entities" ):
An incoming HTML or XML entity is always converted into the corresponding Unicode character.


>>> from urllib.request import urlopen
>>> from bs4 import BeautifulSoup
>>> html = urlopen('https://beton24.ru/sochi/beton/')
>>> bs = BeautifulSoup(html.read(), 'lxml')
>>> result = bs.findAll("span", "catalog-index__link-text")[1]
>>> result.text.replace(u'\xa0',' ').replace(u'\u2009', '')
'от 3836 ₽'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы