Size: a a a

2020 January 27

AR

Andrey Rahmatullin in Scrapy
Andrey Rahmatullin
FEED_URI, тем не менее, читается один раз, при создании scrapy.extensions.feedexport.FeedExporter
:)
источник

i

ildar in Scrapy
а через runner.settings можно задать?
источник

i

ildar in Scrapy
типа, runner.settings=settings_non_ed
источник

AR

Andrey Rahmatullin in Scrapy
можно, но не поможет
источник

AR

Andrey Rahmatullin in Scrapy
Andrey Rahmatullin
раннер же включает в себя всю машинерию с миддлварями и прочим, если надо поменять что-то, что только при инициализации задаётся, то только пересоздавать
:)
источник

i

ildar in Scrapy
хнык
источник

i

ildar in Scrapy
лан, у меня есть опция на два раннера
источник

МС

Михаил Синегубов in Scrapy
эм, а вот так низзя?
class SomeSpider(scrapy.Spider):
......
   @classmethod
   def from_crawler(cls, crawler, *args, **kwargs):
       if(crawler.settings.frozen):
           crawler.settings.frozen = False
           rawler.settings.set("SETTING","NEW_VALUE")
           #crawler.settings.overrides.settings.set("SETTING","NEW_VALUE")
           crawler.settings.freeze()
       spider = cls(*args, **kwargs)
       spider._set_crawler(crawler)
       return spider
источник

i

ildar in Scrapy
ну да, в INFO: Overridden settings: { этот feed_uri не поменялся. (это при моих **settings, щас пробую с двумя раннерами.
источник

AR

Andrey Rahmatullin in Scrapy
Михаил Синегубов
эм, а вот так низзя?
class SomeSpider(scrapy.Spider):
......
   @classmethod
   def from_crawler(cls, crawler, *args, **kwargs):
       if(crawler.settings.frozen):
           crawler.settings.frozen = False
           rawler.settings.set("SETTING","NEW_VALUE")
           #crawler.settings.overrides.settings.set("SETTING","NEW_VALUE")
           crawler.settings.freeze()
       spider = cls(*args, **kwargs)
       spider._set_crawler(crawler)
       return spider
а смысл? экспортер уже создался
источник

AR

Andrey Rahmatullin in Scrapy
ну камон
источник

i

ildar in Scrapy
Михаил Синегубов
эм, а вот так низзя?
class SomeSpider(scrapy.Spider):
......
   @classmethod
   def from_crawler(cls, crawler, *args, **kwargs):
       if(crawler.settings.frozen):
           crawler.settings.frozen = False
           rawler.settings.set("SETTING","NEW_VALUE")
           #crawler.settings.overrides.settings.set("SETTING","NEW_VALUE")
           crawler.settings.freeze()
       spider = cls(*args, **kwargs)
       spider._set_crawler(crawler)
       return spider
если это взлетит то круто, но наверное не в моем случае, это если надо писят пауков в цикле наверное запускать. И то небось проще сделать list раннеров, создающихся на передаче list сеттингс.
источник

МС

Михаил Синегубов in Scrapy
Andrey Rahmatullin
а смысл? экспортер уже создался
ок, а перекрытие экспортера/пайпа? :)
З.Ы. я настырный 😂
источник

i

ildar in Scrapy
что волнует скрапи сообщество в данный момент! ахаха.
источник

AR

Andrey Rahmatullin in Scrapy
ну можно сделать экспортер, который читает настройку не в __init__, но вы ещё эту настройку в него потом передайте
источник

i

ildar in Scrapy
Andrey Rahmatullin
а если нет то просто сунуть в кастом_сеттингс паука или инициализировать из аргумента
а вот про это - это для FEED_URI как-то можно сделать? Из кода, что-то вроде  в __init__ засунуть кастом настройку, и она будет его менять?
источник

AR

Andrey Rahmatullin in Scrapy
можно наверно, если смочь, но не со стандартным FeedExporter (почему - я тоже уже писал)
источник

i

ildar in Scrapy
вернее аргументом, а поменять в init
источник

i

ildar in Scrapy
ну вобщем проще runner's разные создавать?
источник

AR

Andrey Rahmatullin in Scrapy
🤷‍♂️
источник