Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2021 11:48:38

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

AD0DE412
а вы адрес смотрели при выборе цвета товара?
Кстати да, только заметил что при выборе расцветки адрес всё таки меняется. Но не при выборе размера.

Офлайн

#2 Окт. 24, 2021 22:06:16

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

selenium ?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Окт. 25, 2021 00:05:16

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1354
Репутация: +  118  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

для себя потренировался

 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

Отредактировано xam1816 (Окт. 25, 2021 00:05:43)

Офлайн

#4 Окт. 25, 2021 21:01:23

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

xam1816
для себя потренировался
Спасибо большое.

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

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

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

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


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

Грубо говоря, конечным результатом будет только проверка наличия товара всех модификаций (цветовЮ размеров и т.д.)

Офлайн

#5 Окт. 25, 2021 21:26:09

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1354
Репутация: +  118  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

Temp
надпись на которой меняется с Купить на Нет в наличии
дай ссылку на которой кнопка Нет в наличии

Офлайн

#6 Окт. 25, 2021 22:31:29

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

xam1816
Вот к примеру такой сайт:
https://hube.kz/catalog/gornye-velosipedy/velosiped-format-1415-d29–2021-

Офлайн

#7 Окт. 26, 2021 10:15:36

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

темп почитайте посмотрите что ни буть про хтмл верстку например
это займет у вас от силы 3 - 4 дня но снимет массу проблем

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

make love, not war
study nail, not hammer



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Окт. 26, 2021 11:02:56)

Офлайн

#8 Окт. 26, 2021 23:14:11

Temp
Зарегистрирован: 2021-01-16
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

AD0DE412
Спасибо, буду углубляться в HTML.

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

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

Можно ли сравнить то что я делаю с парсингом динамических сайтов или это что-то другое?

Офлайн

#9 Окт. 27, 2021 01:41:29

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1354
Репутация: +  118  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

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,может быть использована в вашем коде

Офлайн

#10 Окт. 27, 2021 18:47:56

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Туплю с библиотекой requests

Temp
обычные radio button которые принимают True
неа ну то есть да по смыслу тока это не дефолтная кнопка а сделаная из … эээ сделаная своими силами кароче
зы ваша ссылка эта упс



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version