Python, Unicode и синтаксический анализ с помощью lxml и как справиться с 35 xa0new

#python #html #unicode #lxml

#python #HTML #юникод #lxml

Вопрос:

Я извлекаю поле на веб-странице объявления, текстовое содержимое тега html выглядит следующим образом…

 35amp;nbsp;new
  

В python извлеченные данные выглядят следующим образом…

 35xa0new
  

Как мне работать с unicode в python для преобразования в обычную строку?
«35 новых»

какую библиотеку мне использовать?

Спасибо

Ответ №1:

Избегайте работы с обычными строками, когда это возможно; unicode s, как правило, более полезны для текста, и есть много хорошо известных решений для манипулирования и работы с ними.

Ответ №2:

Вы получаете строки Unicode от анализатора. Вы можете заменить определенные символы, если предпочитаете другие. Например, ваш xa0 — неразрывный пробел, и вы можете заменить его обычным пробелом:

 text = text.replace(u"xa0", u" ")
  

Может быть много таких символов, которые вы хотите изменить, поэтому может потребоваться длительный процесс поиска всех тех, которые встречаются в ваших данных.