@Jungles
Молодой и зелёный

Как сделать не юникод строку?

Документация beautifulsoup - https://www.crummy.com/software/BeautifulSoup/bs4/...

мы можем декодировать NavigableString в обычную юникод строку, коим NavigableString не является.
Визуально, они не отличаются
type(soup.h1.text)
>>>class 'str'

type(soup.h1.string)
>>>class 'bs4.element.NavigableString'


Как сделать,чтобы возвращалась не строка типа unicode-string, а строка допустим NavigableString или собственного класса?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Просто создай новый класс, который принимает строку, например
class CustomStr:
    def __init__(self, str_):
        self.__str = str_

    def d_space(self):
        return "".join(self.__str.split())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Ничерта не монял. Вот:
soup = BeautifulSoup(html,"html.parser")
	var = soup.title.string
	print(var)
	print(type(var))
В var будет как раз NavigableString:
Hello World! Site Title
<class 'bs4.element.NavigableString'>

Вот русская документация: NavigableString
Ответ написан
Ваш ответ на вопрос

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

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