#python #python-3.x #web-scraping
#python #python-3.x #очистка веб-страниц
Вопрос:
я показываю цены на видеокарты из newegg с помощью веб-очистки. В некоторых текстах, которые я очищаю, есть нежелательный текст после цены, который тоже очищается. каков наиболее эффективный способ отображения только текста цены, не более того.
price_container = container.findAll("li", {"class": "price-current"})
price = price_container[0].text
if len(price) > 7:
цены (бит, который я хочу сохранить) никогда не превышают 7 символов, поэтому я подумал, что могу удалить ненужный текст, используя этот оператор if, но я не уверен, как это сделать, потому что каждая цена имеет разную длину нежелательного текста после нее.
Комментарии:
1. Пожалуйста, покажите несколько примеров цен, когда вы их очистили, а также то, что вы ожидаете получить в результате для каждого.
2. используйте регулярное выражение.
Ответ №1:
Используйте регулярное выражение:
import re
m = re.search(r'$([d.] )', price)
if m:
print(m.group(0)) # to include the dollar sign
print(m.group(1)) # the amount without the dollar sign
Ответ №2:
Вы можете использовать регулярное выражение.
Или возьмите строку и извлеките из нее числа. Пример:
[float(p) for p in price.split() if p.isdigit()] # Will give you an array of the numbers in the string. You can then join them back together.
Возможно, это не совсем то, что вы ищете, но, надеюсь, поможет вам 🙂
Ответ №3:
if len(price) > 7:
price = price[:-1] #This will reasign the string/list to a string/list with all the characters except for the last one.