Size: a a a

2019 July 16

i

ildar in Scrapy
на самый верх внутри for
источник

i

ildar in Scrapy
а почему он одному и тому же названию itemloader присваивается?
источник

i

ildar in Scrapy
и 1 раз тока yield'ится из for?
источник

AB

A B in Scrapy
дык надо в один айтем свести результаты из двух страниц
источник

i

ildar in Scrapy
ну ты своди. но ты сначала в него запихай результ из одной страницы методом создания в методе get_infos, и потом, вернув этот объект, дозаполни его результатом с другой страницы
источник

i

ildar in Scrapy
я могу глубоко ошибаться, но то, что я щас вижу - походу наполняет результом с одной страницы, потом берет выкидывает все это на мороз и создает новый элемент. в результе у тебя в нем только результаты self.get_infos
источник

i

ildar in Scrapy
по-крайней мере в примере с гитхаба что ты линканул такой фигни не происходит
возможно, тебе надо сделать не
itemloader = self.get_infos(tags_res, itemloader)
а чет типа
itemloader['infos'] = self.get_infos(tags_res, itemloader)
источник

i

ildar in Scrapy
ой не, не так
источник

i

ildar in Scrapy
вот чот такое может быть:
itemloader.add_value('infos', self.get_infos(tags_res, itemloader))
источник

i

ildar in Scrapy
но вообще там эээээ вот это еще большие вопросы вызывает:
tags_res = yield Request(prod_link)
источник

i

ildar in Scrapy
типа чо это? где callback? или он по-умолчанию без указания callback идет в себя же ? (я не уверен, так, вангую) там пишут: The generator resumes its execution when a request's response is processed, this means the generator won't be resume after yielding an item or a request with it's own callback.
источник

i

ildar in Scrapy
может кто придет и расскажет чего эта inline requests делает, на каком-нибудь примере, я пока не догоняю чо она делает.
источник

AB

A B in Scrapy
так, я кажется всё понял. обосрался я на селекторах, так как когда создаю ItemLoader, я там же указываю селектор. а когда я пытаюсь через тот же ItemLoader в другом методе что-то напарсить, то я подразумеваю, что сменился контекст, ибо у меня уже другой response. но ItemLoader про него, конечно, ничего не знает, так как селектор ещё прежний.
источник

AB

A B in Scrapy
ildar
вот чот такое может быть:
itemloader.add_value('infos', self.get_infos(tags_res, itemloader))
да, это так будет работать, если get_infos будет отдавать список с тегами. но я затеял всё это с ItemLoader потому, что в моём случае, там выдёргивается больше полей. в минимальном примере я оставил лишь список тегов.
источник

i

ildar in Scrapy
а я все еще не догоняю што есть inline requests) но чую мне это позарез надо) а то надоело пробрасывать item в мету а потом брать его, лишние 5 строк)
источник

B

Bulatbulat48 in Scrapy
ildar
а я все еще не догоняю што есть inline requests) но чую мне это позарез надо) а то надоело пробрасывать item в мету а потом брать его, лишние 5 строк)
Синхронно будет реквест вызывать и класть в переменную респонс
источник

B

Bulatbulat48 in Scrapy
Попробуй просто
источник

B

Bulatbulat48 in Scrapy
Оборачивай декоратором
источник

i

ildar in Scrapy
как понять синхронно? чего это дает? что все вызовы произойдут до выхода из функции что-ли?
источник

i

ildar in Scrapy
или это о том, что респонс будет меняться от вызова к вызову внутри одной и той же функции?
источник