Python - скрытые символы Webscape показывают в len, как я могу удалить их? - PullRequest
0 голосов
/ 07 марта 2019

Я использовал:

driver.find_elements_by_xpath('(.//span[@class = "x"])')[0].text

Информация, которую он извлекает, верна, но добавляет пробелы, которые отображаются в HTML как "&#8237" с сайта im scaping.

Как сделатьЯ удаляю их, чтобы я мог превратить str в int с, поскольку это останавливает меня в данный момент.

Я пытался .strip и .replace без удачи.

Вотнеобработанный HTML

<span class="coordinateX">(&#8237;‭−&#8237;‭52&#8236;&#8237;‬‬</span>

, когда я печатаю эту строку, я получаю (-52, но когда я len() это, я получаю 8 вместо 4 из-за этих скрытых символов.

Спасибо Марк.

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Может быть, попробовать регулярное выражение?

import re

string = 'Here is some string to&#8237test'

string = re.sub(r'(&#\d\d\d\d)',' ', string)

print(string)

>>> 'Here is some string to test'

re.sub говорит, если вы найдете этот шаблон регулярного выражения r '(& # \ d \ d \ d \ d)', замените его на '',и выполните поиск в переменной 'string'.

Ресурсы

https://pythex.org/ - для создания и тестирования шаблонов

Учебный материал

https://developers.google.com/edu/python/regular-expressions https://www.tutorialspoint.com/python/python_reg_expressions.htm

0 голосов
/ 07 марта 2019

Соответствующий HTML-код помог бы нам лучше отладить проблему.Однако вместо свойства text можно использовать метод get_attribute() следующим образом:

myText = driver.find_elements_by_xpath('(.//span[@class = "x"])')[0].get_attribute("innerHTML")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...