Size: a a a

2020 November 28

AR

Andrey Rahmatullin in Scrapy
не читать джсон глазами, он не для этого
источник

S

SoHard 🎄 in Scrapy
Andrey Rahmatullin
не читать джсон глазами, он не для этого
json не для того чтобы вооо....я тоже самое начал писать
источник

М

Мур in Scrapy
Andrey Rahmatullin
не читать джсон глазами, он не для этого
Понял, благодарю
источник

К

Кирилл in Scrapy
Мур
И это норма получается?
Да, это поведение можно отключить, но не нужно
источник

М

Мур in Scrapy
Ребзя извините за беспокойство и спасибо
источник

D

Dmitry in Scrapy
Помогите с логикой, пожалуйста. Внутри parse() есть itemloader. Но чтобы собрать полный item, требуется из parse() посылать дополнительные реквесты на таргет. Я это делаю через response.follow() с колбэком и передаю туда метой инстанс itemloader. Но тут возникает проблема - когда и откуда вызывать itemloader.load_item()? Ведь эти доп-реквесты непонятно в какой последовательности выполняются, это же не стэк FIFO - так бы тупо из последнего вызванного response.follow() и вызвал бы load_item().
источник

AR

Andrey Rahmatullin in Scrapy
высылать цепочкой, а не циклом
источник

AR

Andrey Rahmatullin in Scrapy
либо scrapy-inlne-requests
источник

D

Dmitry in Scrapy
Я цепочкой и вызываю. Грубо вот так:
def parse()
    loader = ItemLoader()
    response.follow(meta = {'loader'=loader}, callback=one)
    response.follow(meta = {'loader'=loader}, callback=two)

def one()
    pass

def two()
    response.meta['loader'].load_item()
источник

D

Dmitry in Scrapy
Не получится так, что two закончит раньше one и загрузит неполный item?
источник

AR

Andrey Rahmatullin in Scrapy
это не цепочка, а параллельно
источник

AR

Andrey Rahmatullin in Scrapy
цепочка это второй из первого
источник

D

Dmitry in Scrapy
Понял, спасибо. Правда логика какая-то убогая получается
источник

К

Кирилл in Scrapy
Обычная логика
источник

D

Dmitry in Scrapy
То есть делать несколько parse1, parse2, parse3, вместо того, чтобы каждый метод делает то, что ему положено делать
источник

AR

Andrey Rahmatullin in Scrapy
нет, с чего бы?
источник

AR

Andrey Rahmatullin in Scrapy
это ж обычная замена итерации рекурсией
источник

К

Кирилл in Scrapy
Каждый калбэк это результат одного http запроса, так что всё логично
источник

D

Dmitry in Scrapy
Да, но было бы здорово, чтобы можно было бы вызвать какой-то final метод, который бы завершал сборку айтема, когда все остальные реквест-хелперы выполнятся. Чтобы не приходилось например из хелпер-метода вызывать следующий хелпер-метод, что на мой взгляд все-таки нарушает логику - в этом случае это уже не чистый хелпер-метод получает, а часть основного пути программы, то есть основного parse.
источник

AR

Andrey Rahmatullin in Scrapy
пиши диздок, суй в гитхаб
источник