Форум сайта python.su
0
Добрый вечер!
Есть код
Отредактировано Antonpython (Сен. 18, 2017 18:57:47)
Офлайн
6
По первому вопросу. Если на странице нет информации сколько всего будет страниц, то не нужно пытаться это сразу узнать.
Переделай с цикла for на while. Номер сам наращивай. Проверяй код ответа.
Как только код будет 301 с редиректом на первую, значит и прерываем перебор.
И так у тебя с ценами может быть косяк. В
row.find_all('a', class_='pr-price_mark')
попадает не только розница, а и опт. Если не дай бог не будет розницы, то по
rozn[0]
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)
Офлайн
9
Antonpython
У тебя там слева производители указаны и кол-во по каждому из них. Суммируешь, делишь на 25 (кол-во итемсов на страницу) и получаешь свои 55 страниц.
try/except все в топку, если элемента нет, то присваивается значение None по умолчанию. Вообще если используешь try/except, то указывай конкретное исключение которое собираешься перехватывать.
Отредактировано WoMax (Сен. 15, 2017 21:33:19)
Офлайн