Найти - Пользователи
Полная версия: Туплю с библиотекой requests
Начало » Python для новичков » Туплю с библиотекой requests
1 2 3
Temp
AD0DE412
а вы адрес смотрели при выборе цвета товара?
Кстати да, только заметил что при выборе расцветки адрес всё таки меняется. Но не при выборе размера.
AD0DE412
selenium ?
xam1816
для себя потренировался
 import requests
from bs4 import BeautifulSoup
url = r"https://www.kant.ru/catalog/product/2746383/"
def get_soup_from_html(url):
    resp = requests.get(url)
    if resp.status_code == 200:
        html = resp.text
        soup = BeautifulSoup(html,'lxml')
        return soup
def get_data(soup):
    name = soup.find('h1',itemprop="name").text
    price = soup.find('span',class_="kant__product__price__new kant__price").text
    links_and_imgs = []
    tags = soup.find('div',class_="kant__product__color__thumbs").find_all('a')
    for i in tags:
        links_and_imgs.append((i['href'],i.img['src']))
    btn = soup.find('div',class_="kant__product__buy__button--new").text.strip()
    return name, price, links_and_imgs,btn
soup = get_soup_from_html(url)
if soup is not None:
    for i in get_data(soup):
        print(i)

 Футболка с длинным рукавом Accapi Ergoracing Long Sleeve Shirt Anthracite Black
9 490
[('/catalog/product/2746383/', '/upload/resize_cache/iblock/9eb/555_455_1/9eb0b5b57531e0ab78deecb671164e06.jpg'), ('/catalog/product/2746589/', '/upload/resize_cache/iblock/d10/85_85_1/d1048f710034e53eb45162b1e116600c.jpg'), ('/catalog/product/2746493/', '/upload/resize_cache/iblock/8c8/85_85_1/8c810b9f195214d57a20ec10eff9420d.jpg'), ('/catalog/product/2746411/', '/upload/resize_cache/iblock/4f8/85_85_1/4f8c13a71961896071b06b2a6f3900da.jpg')]
Добавить в корзину
Process finished with exit code 0
Temp
xam1816
для себя потренировался
Спасибо большое.

Насколько я додумал, этот код собирает ссылки по цветам и соответствующее изображение.

Возможно я не корректно описал свою проблему

1)Имеется товар на сайте.
2)Допустим имеется 2 расцветки данного товара (красный и синий)
3)Допустим имеется 3 размера данного товара во всех расцветках (M, L, XL)
4)Имеется кнопка, надпись на которой меняется с Купить на Нет в наличии (True / False)

Считывать значение по четвертому пункту мы научились.
Осталось понять как эмулировать перебор по вариантам:


красный - M -> Купить -> True
красный - L -> Купить -> True
красный - XL -> Нет в наличии -> False
синий - M -> Купить -> True
синий - L -> Нет в наличии -> False
синий - XL -> Купить -> True

Грубо говоря, конечным результатом будет только проверка наличия товара всех модификаций (цветовЮ размеров и т.д.)
xam1816
Temp
надпись на которой меняется с Купить на Нет в наличии
дай ссылку на которой кнопка Нет в наличии
Temp
xam1816
Вот к примеру такой сайт:
https://hube.kz/catalog/gornye-velosipedy/velosiped-format-1415-d29–2021-
AD0DE412
темп почитайте посмотрите что ни буть про хтмл верстку например
это займет у вас от силы 3 - 4 дня но снимет массу проблем

зы просто вот ни разу не приходилось скраблингом заниматься а выглидит буд то я это лучше знаю чем вы посвятивший этому эээ некоторое количество времени
ззы это не похвольба про меня и не ололо на вас просто хочу вам подсказать что вы выбрали не верную стратегию изучения этого вопроса … конечно это все личное мнение и оно маожет быть ошибочным

make love, not war
study nail, not hammer
Temp
AD0DE412
Спасибо, буду углубляться в HTML.

Насколько я понял. конкретно на этом сайте переключатели модификаций (цветов/размеров) являются обычные radio button которые принимают True / False:

И вроде как изначально в страницу не заложена информация о наличии товара (будет ли кнопка “купить” или “под заказ”), и страница каждый раз подгружает эту информацию при кликах пользователем по данным кнопкам.

Можно ли сравнить то что я делаю с парсингом динамических сайтов или это что-то другое?
xam1816
Temp
Вот к примеру такой сайт:
https://hube.kz/catalog/gornye-velosipedy
достать какие-то слова из html не особо сложно
 tag = soup.find('div',class_="product_card col-md-4 col-sm-6 col-xs-6")
is_available = tag.contents[1].find('div',class_="ware-badge on-ware").text.strip()
name = tag.contents[1].find('a',class_="product-title").text.strip()
print(is_available,'\n',name)

 Есть в наличии 
 ГОРНЫЙ ВЕЛОСИПЕД AIST QUEST 26 2021

Temp
конкретно на этом сайте переключатели модификаций (цветов/размеров) являются обычные radio button которые принимают True / False:
и любая хрень на сайте,которая как-то ассоциируется с кодом в html,может быть использована в вашем коде
AD0DE412
Temp
обычные radio button которые принимают True
неа ну то есть да по смыслу тока это не дефолтная кнопка а сделаная из … эээ сделаная своими силами кароче
зы ваша ссылка эта упс
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB