У вас есть элемент select div
, который является родительским узлом вашего тега привязки, но не является тегом привязки, который содержит элемент href
.Вам нужно добавить .a
к коду, который находится внутри цикла.
Что-то вроде
print(new_link.a["href"])
даст вам ссылки должным образом.
Для правильной нумерации страниц я могу предложить вам два пути.
Найдите количество страниц и зациклите их.В вашем случае номера страниц указаны в классе page-result
.Номера страниц можно найти по следующему коду:
page_numbers = soup.find('div', {'class':'page-result'}).text
page_numbers = page_numbers.split('(')[-1].replace(' Pages)', '')
total_pages = ['http://makeupuccino.com/makeup/faces/foundation?page='+str(i) for i in page_numbers] #this list will give you total pages - 4 pages with the link you provided
break
цикл while, когда на странице появляется текст There are no products to list in this category.
.Разверните его с помощью приведенного ниже кода:
soup = BeautifulSoup(res.content,"html.parser")
if 'There are no products to list in this category.' in str(soup):
break
else:
#rest of your code.
Хотя второе решение кажется сравнительно простым, я бы посоветовал вам перейти к первому, поскольку оно научит вас многим вещам иэто тоже правильный путь.
Надеюсь, это поможет!Ура!