Я изучаю красивый суп в Python.Как конвертировать текст в формате Юникод в обычный текст
Я пытаюсь разобрать простую веб-страницу со списком книг.
например
<a href="https://www.nostarch.com/carhacking">The Car Hacker’s Handbook</a>
Я использую следующий код.
import requests, bs4
res = requests.get('http://nostarch.com')
res.raise_for_status()
nSoup = bs4.BeautifulSoup(res.text,"html.parser")
elems = nSoup.select('.product-body a')
#elems[0] gives
<a href="https://www.nostarch.com/carhacking">The Car Hacker\u2019s Handbook</a>
И
#elems[0].getText() gives
u'The Car Hacker\u2019s Handbook'
Но я хочу правильный текст, который дается,
s = elems[0].getText()
print s
>>>The Car Hacker’s Handbook
Как изменить мой код, чтобы дать «Handbook рсА Хакер» выход вместо из «u'The Car Hacker \ u2019s Handbook»?
Просьба помочь.
Нет ничего плохого в том, что вы получаете. Это строка в Юникоде с фантастическим характером апострофа. – Selcuk
Спасибо, @Selcuk. Но как использовать эту строку «u'The Car Hacker \ u2019s Handbook» и хранить в файле/базе данных? Будет ли он правильно сохранен? Я имею в виду, что я попробовал 'f.write (elems [0] .getText())', я получил UnicodeEncodeError. –
Спасибо, @Selcuk. Я понял. Я использовал 'elems [0] .getText(). Encode ('utf-8')' для сохранения в файл или базу данных. –