Size: a a a

2021 April 01

AV

Anatoli Valenda in Scrapy
Хм, а могу я в колбэк указать функцию, в которой я нахожусь? Но мне кажется, что это хреновое решение. С одной стороны я имею доступ к респонзу предыдущего вызова и могу формировать следующий реквест, но не переполню ли я стек вызова(140 000 страниц)?
источник

AV

Anatoli Valenda in Scrapy
Ладно. Спасибо за подсказки. Попробую что-нибудь нахимичить. Если интересно, то о результатах могу отписать тут.
источник

i

i in Scrapy
Anatoli Valenda
Хм, а могу я в колбэк указать функцию, в которой я нахожусь? Но мне кажется, что это хреновое решение. С одной стороны я имею доступ к респонзу предыдущего вызова и могу формировать следующий реквест, но не переполню ли я стек вызова(140 000 страниц)?
вызвать из коллбека туже функцию где ты находишься имхо вполне норм решение. В частности, для  обхода пагинации хорошо прокатывает. Или к примеру у тебя на одной и той же странице есть и товары и подкатегории - и сколько там внутри подкатегорий ты не знаешь
источник

i

i in Scrapy
ты просто делаешь в этой функции 2 коллбека - одному передаешь категорию и вызываешь эту же функцию, а в другой функции коллбечишь функцию уже обработки товаров
источник

AV

Anatoli Valenda in Scrapy
i
вызвать из коллбека туже функцию где ты находишься имхо вполне норм решение. В частности, для  обхода пагинации хорошо прокатывает. Или к примеру у тебя на одной и той же странице есть и товары и подкатегории - и сколько там внутри подкатегорий ты не знаешь
Во во! Фишка как раз в том, что мне нужно обойти все страницы, но сколько их я не знаю, а значит не знаю когда мне остановить перебор страниц. А останавливать его надо, когда данные кончатся, а это я узнаю только в колбэк функции. Вот такая петрушка получается
источник

i

i in Scrapy
источник

i

i in Scrapy
ну типа вот как-то так. тока тут старый код. щас бы я paginator_links просто в коммент положил
источник

AV

Anatoli Valenda in Scrapy
Попробую такой подход. Я только за стэк беспокоюсь
источник

i

i in Scrapy
во:
источник

i

i in Scrapy
не беспокойся, ты же yield делаешь и твистед там по-факту рулит
источник

i

i in Scrapy
вот в paginator_links по-факту могут быть и твои же подкатегории, а дальше еще подкатегории и так до самого дна ты их все собираешь, и откидываешь еще параллельно продукты встречаемые на обработку уже в другой коллбек (parse_product)
источник

AR

Andrey Rahmatullin in Scrapy
Anatoli Valenda
Хм, а могу я в колбэк указать функцию, в которой я нахожусь? Но мне кажется, что это хреновое решение. С одной стороны я имею доступ к респонзу предыдущего вызова и могу формировать следующий реквест, но не переполню ли я стек вызова(140 000 страниц)?
ты неправильно архитектуру планируешь и не хочешь советам следовать
источник

AR

Andrey Rahmatullin in Scrapy
Anatoli Valenda
Во во! Фишка как раз в том, что мне нужно обойти все страницы, но сколько их я не знаю, а значит не знаю когда мне остановить перебор страниц. А останавливать его надо, когда данные кончатся, а это я узнаю только в колбэк функции. Вот такая петрушка получается
всё верно, останавливать когда данные кончатся
источник

AR

Andrey Rahmatullin in Scrapy
Anatoli Valenda
Попробую такой подход. Я только за стэк беспокоюсь
коллбэки не вызывают друг друга
источник

S

SoHard 🎄 in Scrapy
Как правильно сделать?

задумал по каким-то определённым признакам определять какой селектор нужно использовать чтобы забрать цену товара

сейчас всё на if-ах как правильно сделать? или гребёнка ифов это ок?
источник

AR

Andrey Rahmatullin in Scrapy
Применять все, возьмётся первый результат
источник

S

SoHard 🎄 in Scrapy
источник

S

SoHard 🎄 in Scrapy
такое сейчас
источник

S

SoHard 🎄 in Scrapy
Andrey Rahmatullin
Применять все, возьмётся первый результат
есть же вероятность словить что-то не то раньше/позже верного селектора
источник

AR

Andrey Rahmatullin in Scrapy
Тогда ифы
источник