Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 15, 2017 09:38:26

Antonpython
Зарегистрирован: 2017-02-14
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Нет тега при парсинге данных с сайта - как "обойти" этот момент

Добрый вечер!
Есть код

Отредактировано Antonpython (Сен. 18, 2017 18:57:47)

Офлайн

#2 Сен. 15, 2017 14:41:32

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Нет тега при парсинге данных с сайта - как "обойти" этот момент

По первому вопросу. Если на странице нет информации сколько всего будет страниц, то не нужно пытаться это сразу узнать.
Переделай с цикла for на while. Номер сам наращивай. Проверяй код ответа.
Как только код будет 301 с редиректом на первую, значит и прерываем перебор.

И так у тебя с ценами может быть косяк. В
row.find_all('a', class_='pr-price_mark')
попадает не только розница, а и опт. Если не дай бог не будет розницы, то по

 rozn[0]
ты возьмёшь опт.

Нужно искать конкретно <div class=“pr-price_cash”> и брать оттуда.
 rozn = row.find('div', class_='pr-price_cash')
rozn = rozn.find('a', class_='pr-price_mark').string if rozn else 0
и добавляешь

Отредактировано Vintets (Сен. 15, 2017 15:01:26)

Офлайн

#3 Сен. 15, 2017 21:28:38

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

Нет тега при парсинге данных с сайта - как "обойти" этот момент

Antonpython
У тебя там слева производители указаны и кол-во по каждому из них. Суммируешь, делишь на 25 (кол-во итемсов на страницу) и получаешь свои 55 страниц.

try/except все в топку, если элемента нет, то присваивается значение None по умолчанию. Вообще если используешь try/except, то указывай конкретное исключение которое собираешься перехватывать.

Отредактировано WoMax (Сен. 15, 2017 21:33:19)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version