удаление символов из конца строки

#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.