Вы используете .text слишком много раз. У вас есть
discount_list = soup.find_all('p', {'class': 'description'}).text
for each_item in discount_list:
print(each_item.text)
, где .text
дважды, в первой строке и в печати. Таким образом, вы, по сути, пытаетесь выполнить .text.text
, и, поскольку первый .text
является str
и не имеет потомков, каковым будет второй .text
, вы получаете эту ошибку.
Чтобы решить эту проблему, просто измените строку discount_list
на
discount_list = soup.find_all('p', {'class': 'description'})