Перемещение по HTML веб-сайта с использованием красивого супа на python для выбора конкретного тега c - PullRequest
1 голос
/ 05 августа 2020

Ниже HTML сайта: введите описание изображения здесь

Я пытаюсь получить код python, чтобы вернуть тег после product-card__title и product-card__price, где я хочу, чтобы он возвращал имя и цену обуви.

Я попытался запустить приведенный ниже код, но я не получил именно того, что хочу.


url = 'https://kith.com/collections/mens-footwear-sneakers'
r = requests.get(url)
soup = BeautifulSoup(r.content,'html.parser')
ex = soup.find('ul',{'class': 'collection-products'})

for i in ex.find_all('a'):
    print(i.text)

Это то, что возвращается
















Nike Air Force 1 '07 LV8
NY vs NY




$110.00


И так далее. Я просто хочу иметь возможность использовать soup.select для очень специфического тега c после класса «product-card__title» или «product-card__price», например, для adidas x Pharrell Williams Boost Slide и $ 100.

1 Ответ

1 голос
/ 05 августа 2020

Этот скрипт напечатает название и цену товаров на странице:

import requests
from bs4 import BeautifulSoup


url = 'https://kith.com/collections/mens-footwear-sneakers'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

for i in soup.select('.product-card__information'):
    title = i.select_one('.product-card__title').get_text(strip=True)
    price = i.select_one('.product-card__price').get_text(strip=True)

    print(title)
    print(price)
    print('-' * 80)

Распечатывает:

Nike Air Force 1 '07 LV8
$110.00
--------------------------------------------------------------------------------
Nike Daybreak SP
$110.00
--------------------------------------------------------------------------------
Nike Killshot OG SP
$90.00
--------------------------------------------------------------------------------
Puma Roma '68 R. Dassler Legacy
$110.00
--------------------------------------------------------------------------------
Puma Oslo-City R. Dassler Legacy
$120.00
--------------------------------------------------------------------------------
Puma Ralph Sampson Mid R. Dassler Legacy
$110.00
--------------------------------------------------------------------------------
Puma Ralph Sampson Lo R. Dassler Legacy
$100.00
--------------------------------------------------------------------------------
Puma Mirage OG R. Dassler Legacy
$100.00
--------------------------------------------------------------------------------
Puma Fast Rider R. Dassler Legacy
$100.00
--------------------------------------------------------------------------------
Y-3 Shiku Run
$350.00
--------------------------------------------------------------------------------
Y-3 Runner 4D
$500.00
--------------------------------------------------------------------------------
Y-3 Runner 4D
$500.00
--------------------------------------------------------------------------------
...