Я пробовал много способов, но всегда получаю ошибки. Я просто хочу перевести фунты в евро, исключить, если результатом будет какое-либо из следующего: 123, 1234, 12345, и в итоге получим 1 вывод; среднее из всех чисел.
import requests
import re
from currency_converter import CurrencyConverter
c = CurrencyConverter()
from bs4 import BeautifulSoup
url = "https://www.donedeal.ie/cars/Ford/C-MAX"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
for price in soup.findAll('p', attrs={'class': 'card__price'}):
price = price.text
Вывод этого пока выглядит следующим образом:
€1,350
€17,950
€650
... (and so on)
теперь для конвертации валюты ..
pound_price= re.compile(r'£+\d[0-9,.]+')
if pound_price.findall(price):
converted=price[0]#.replace('£','')
converted=c.convert(price[0], 'GBP', 'EUR')
print(converted)
Он не возвращает никакого вывода, и эта ошибка:
Traceback (most recent call last):
File "xx", line 32, in <module>
converted=c.convert(price[0], 'GBP', 'EUR')
File "..\AppData\Local\Programs\Python\Python36\lib\site-packages\currency_converter\currency_converter.py", line 358, in convert
return self.cast(amount) / r0 * r1
ValueError: could not convert string to float: '£'
price_only = re.compile(r'\d[0-9,.]+')
just_price = price_only.findall(price)
integer_price = [int(''.join(s[0:].split(','))) for s in just_price]
def cal_average(num):
sum_num=0
for t in (num):
sum_num= sum_num + t
avg= sum_num / len(num)
return avg
print(int(cal_average(integer_price)))
Вывод выглядит так:
1350
17950
650
19950
24368
Traceback (most recent call last):
File "xx", line 60, in <module>
print(int(cal_average(integer_price)))
File "xx", line 57, in cal_average
avg= sum_num / len(num)
ZeroDivisionError: division by zero
15950
7250
7500
5250
113
14500
314
13450
999
Process finished with exit code 1