@Daidin

Не понимаю, как спарсить этот товар?

import requests
from bs4 import BeautifulSoup

URL = 'https://www.bershka.com/by/%D0%BC%D1%83%D0%B6%D1%87%D0%B8%D0%BD%D1%8B/%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0/%D1%82%D0%BE%D0%BB%D1%81%D1%82%D0%BE%D0%B2%D0%BA%D0%B8-c1010193244.html'

HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36',
           'accept': '*/*'}
def get_html(url, params=None):
    r = requests.get(url, headers=HEADERS, params=params)
    return r


def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('p', class_='product-content')
    print(items)

def parse():
    html = get_html(URL)
    if html.status_code == 200:
        get_content(html.text)
    else:
        print("Error")

parse()


Особо ещё не разбираюсь в парсинге, поэтому ответ прошу дать простым языком)
И так есть сайт и мне надо спарсить цены, картинки и название товара, не понимаю. В коде выше я пытался спарсить хотя бы одну "карточку". Но вот что-то вообще никак не работает как уже только не пробовал. В коде как я понимаю все карточки лежат в списке ul, а каждая в li. И вот я не понимаю как такое парсить нигде инфы не могу найти)
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 1
ScriptKiddo
@ScriptKiddo
Информация о товарах подгружается через отдельный запрос

Вот пример

import requests
import json
import pprint

headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36',
}

params = (
    ('categoryId', '1010193244'),
    ('productIds',
     '103733907,105019717,103807780,103646046,103789895,103789901,103494687,103807800,103586862,104787564,104787563,103678178,104787606,104787560,104787562,103646051,103994120,104131075,103056467,103588023,103921817,103554672,103921816,103101531,103284042,103101528,103284041,104787703,105019580,105019579,104787704,103108154,103376867,103760889,102948033,103494674,104130553,103215061,102944627,103293571'),
    ('languageId', '-20'),
)

response = requests.get('https://www.bershka.com/itxrest/3/catalog/store/45009591/40259536/productsArray',
                        headers=headers, params=params)

data = json.loads(response.text)

pp = pprint.PrettyPrinter(indent=4)
pp.pprint(data['products'][0])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы