Cложение чисел забраных при парсинге
Есть сайт - https://parsinger.ru/html/index1_page_1.html Я спарсил с него цены на часы, и вывел их в консоли. Я хочу сложить полученные числа, но способа кроме как сложить их и занести в переменную я не знаю, я бы хотел сделать это автоматически, даже если бы чисел было бы больше, они бы все равно автоматически складывались бы и выводились.
from bs4 import BeautifulSoup
import requests
import lxml
url = 'https://parsinger.ru/html/index1_page_1.html'
response = requests.get(url=url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'lxml')
div = soup.find('div','item_card').find_all('p','price')
for txt in div:
print(txt.text)
sumPrice = 2310+5480+21810+21810+27770+27770+24230+32600
print(sumPrice)
Ответы (2 шт):
Автор решения: Mr.Framon
→ Ссылка
У вас txt.text возвращает str, вам нужно преобразвать в int, но так как у вас там присутствует не только число, нужно сделать замену, txt.text.replace("руб", "")
import requests
from bs4 import BeautifulSoup
url = 'https://parsinger.ru/html/index1_page_1.html'
response = requests.get(url=url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'lxml')
div = soup.find('div','item_card').find_all('p','price')
sumPrice = 0
for txt in div:
print(f"Цена: {txt.text}")
price = int(txt.text.replace("руб", ""))
sumPrice = sumPrice+price
print(f"Общай сумма: {sumPrice} руб")
Автор решения: Fatum
→ Ссылка
from bs4 import BeautifulSoup
import requests
url = 'https://parsinger.ru/html/index1_page_1.html'
response = requests.get(url=url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'lxml')
divs = soup.find_all('p', class_='price')
prices = [price.text.strip(' руб') for price in divs] # создаём список с ценами
print(sum(list(map(int, prices)))) # преобразуем текст к числам и суммируем