One possibility is when you make a url request for the webpage, it automatically redirects you to a different webpage when there are no specials available.

I tried going to that webpage, but was unable to navigate without being redirected.


You're doing .text too many times. You have

discount_list = soup.find_all('p', {'class': 'description'}).text
for each_item in discount_list:

which has .text twice, on the first line and in the print. Therefore you're essentially trying to do .text.text, and since the first .text is a str and has no descendants, which is what the second .text would be, you're getting that error.

To solve it, simply change the discount_list line to

discount_list = soup.find_all('p', {'class': 'description'})


There are two mistakes in your code:

You are calling the beautifulsoup which you imported as soup library instead of the items object in the line 6. You also need to remove the .text attribute like @Cz_ suggested. Change this line like this:

discount_list = items.find_all('p', {'class': 'description'})