Size: a a a

2020 January 27

i

ildar in Scrapy
хм, а зачем я их из разных файлов запускаю?
источник

i

ildar in Scrapy
ща буду пробовать запускать с одного, с process.start(stop_after_crawl=False) чет не получилось(
источник

i

ildar in Scrapy
мне надо чтобы они последовательно выполнились, если я сделаю в скрипте два process.crawl а потом start - оно будет же последовательно выполняться?
источник

i

ildar in Scrapy
RuntimeError: Set changed size during iteration
нет, оно работает параллельно(
источник

М

Мак in Scrapy
subprocess.Popen(scrapy crawl spider1).wait()
subprocess.Popen(scrapy crawl spider2)
я так делал
источник

AR

Andrey Rahmatullin in Scrapy
CrawlerProcess сам менеджит реактор, юзайте CrawlerRunner и запускайте реактор руками
источник

МС

Михаил Синегубов in Scrapy
from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging

class MySpider1(scrapy.Spider):
   # Your first spider definition
   ...

class MySpider2(scrapy.Spider):
   # Your second spider definition
   ...

configure_logging()
runner = CrawlerRunner()

@defer.inlineCallbacks
def crawl():
   yield runner.crawl(MySpider1)
   yield runner.crawl(MySpider2)
   reactor.stop()

crawl()
reactor.run() # the script will block here until the last crawl call is finished
источник

МС

Михаил Синегубов in Scrapy
у меня имеено такой код пользуется, для последовательного запуска
источник

МС

Михаил Синегубов in Scrapy
не скажу что это прям "правильно", но работает без сбоев
источник

МС

Михаил Синегубов in Scrapy
А, только отличие было, я запускал из "левого" скрипта и классы пауков импортил
источник

i

ildar in Scrapy
странно, толи я неправильно прочел в доках, там пишут что этот код для одновременного запуска
источник

i

ildar in Scrapy
а не, все норм: Same example but running the spiders sequentially by chaining the deferreds:
источник

МС

Михаил Синегубов in Scrapy
Неее, это именно последовательный
источник

i

ildar in Scrapy
параллельный запуск это на блок кода выше. спасибо, щас попробую переписать так
источник

МС

Михаил Синегубов in Scrapy
Коммент последней строки это и говорит 😝
источник

i

ildar in Scrapy
смотрим в книгу видим фигу)
источник

МС

Михаил Синегубов in Scrapy
Ну, лучше использовать принцип "ска, ведь кто то уже должен был делать"
Задача то достаточно распространённая
источник

i

ildar in Scrapy
вот только вопрос как бы получше в runner.crawl передать разные параметры
источник

i

ildar in Scrapy
из того, что нагуглил, параметры передаются тут runner = CrawlerRunner(settings), но это немного не то, что мне надо(
источник

AR

Andrey Rahmatullin in Scrapy
а какие ещё параметры надо?
источник