Разбор DOM для извлечения данных с использованием Python - PullRequest
1 голос
/ 15 февраля 2020

У меня есть следующий код, который выводит данные, извлеченные из тега <div>.

s = BeautifulSoup(driver.page_source, "lxml")

best_price_tags = s.findAll('div', "flt-subhead1 gws-flights-results__price gws-flights-results__cheapest-price")
best_prices = []
for tag in best_price_tags:
    best_prices.append(tag.text.replace('€', '').strip())

Первый элемент переменной best_price_tags содержит следующее:

<div class="flt-subhead1 gws-flights-results__price gws-flights-results__cheapest-price">      1 820 €   </div>

Я ожидаю, что из приведенного выше кода будет выводиться только значение 1821.

Приведенный выше фрагмент кода имеет проблему, когда он выводит следующее, рассмотрим случай best_price_tags[0], '1\u202f821'.

Я попробовал следующее, но, к сожалению, у меня ничего не вышло.

for tag in best_price_tags:
    best_prices.append(int(tag.text.replace('€', '').strip()))

В поисках автоматизированного решения без использования модулей НЛП.

ПРИМЕЧАНИЕ. Я отредактировал точное значение <div> тег имеет. Это было <div class='...'>1 820 €</div>, а теперь <div class='...'> 1 820 € </div>.

1 Ответ

1 голос
/ 15 февраля 2020

пробел в 1 821, кажется, пробел без перерывов (вызывающий \ u202f в выходных данных), попробуйте выполнить замену тоже. Кстати, я не знаю, где находится этот символ на клавиатуре, но копирования / вставки должно быть достаточно

...