Запрос на получение ссылки
Как получить href ссылку ?
x = soup.findAll("div", {"class": "o-row"})
for link in x:
link = link.find('a').get('href')
print(link)
код выводит не то, что нужно
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Причина в том, что ваш поиск возвращал первый тег <a>, а т.к. поиск был только по тегу, то и получали первый попавшийся.
Нужно было в поиске указывать class='title'.
CSS-селектор:
.o-row-- поиск элементов сclass="o-row"a.title-- поиск элементов с<a class="title">
from urllib.parse import urljoin
from bs4 import BeautifulSoup
import requests
rs = requests.get('https://bookvoed.ee/search?q=white+fang')
root = BeautifulSoup(rs.content, 'html.parser')
for row in root.select('.o-row'):
a = row.select_one('a.title')
href = urljoin(rs.url, a.get('href'))
title = a.get_text(strip=True)
print(title, href)
# White Fang https://bookvoed.ee/goods/4496177
# Белый клык = White Fang https://bookvoed.ee/goods/6807168
# The Call of the Wild and White Fang https://bookvoed.ee/goods/8654867
# White Fang [= Белый Клык] https://bookvoed.ee/goods/451827
# Call of the Wild & White Fang https://bookvoed.ee/goods/4914246
PS.
В href хранятся относительные ссылки, поэтому для удобства добавил код конвертирования в абсолютные ссылки через urljoin
