Size: a a a

2020 July 06

A

Andrii in Scrapy
Гугл?
источник

A

Andrii in Scrapy
tfhx8
понятно что не умеет, я имел ввиду может у кого есть middlware итп или рабочий код в связке со scrapy
вторая ссылка
источник

A

Andrii in Scrapy
источник

A

Alex in Scrapy
Ребят еще раз про параллельную работу паука
def start_requests(self):
       urls = [
           'http://quotes.toscrape.com/page/1/',
           'http://quotes.toscrape.com/page/2/',
       ]
       for url in urls:
           yield scrapy.Request(url=url, callback=self.parse)

обрабатываются ссылки последовательно начиная с первой
в настройках я увеличиваю запросы
CONCURRENT_REQUESTS = 2
DOWNLOAD_DELAY = 3
CONCURRENT_REQUESTS_PER_DOMAIN = 2
CONCURRENT_REQUESTS_PER_IP = 2
запросов стало больше но обрабатывается все еще 1-й линк и пока не обработается 1 линк ко второму паук не перейдет
правильно понимаю или нет?
источник

i

ildar in Scrapy
у тебя же паук вроде с селениум-драйвером, какой ты юзаешь, который с clemfromspace? может там какое-то ограничение на количество драйверов?

попробуй эти настройки закомментить или выставить их в 10 и посмотреть что тебе покажет auto throttle со стартом паука:
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 3
AUTOTHROTTLE_MAX_DELAY = 120
AUTOTHROTTLE_TARGET_CONCURRENCY = 2.0
AUTOTHROTTLE_DEBUG = True
источник

i

ildar in Scrapy
вообще там в иссьюсах пишут к примеру, что DOWNLOAD_DELAY  не учитывается и предлагаются обходы. Мало ли что там еще не учитывается...
https://github.com/clemfromspace/scrapy-selenium/issues/36
источник

A

Alex in Scrapy
я не знаю правильно ли я сделал) из init селениум вынес в функцию parse и теперь как я понимаю скрапи может запустить паралельно обработку линков, я пытаюсь так сделать

https://pastebin.com/3AMjLNiq
источник

К

Кирилл in Scrapy
Alex
я не знаю правильно ли я сделал) из init селениум вынес в функцию parse и теперь как я понимаю скрапи может запустить паралельно обработку линков, я пытаюсь так сделать

https://pastebin.com/3AMjLNiq
Большой код в pastebin.com
источник

К

Кирилл in Scrapy
Такое никто читать не будет
источник

A

Alex in Scrapy
Кирилл
Большой код в pastebin.com
ок, понял
источник

A

Alex in Scrapy
теперь как я думаю линк отдается def parse(self, response) и эта функция запускает вебдрайвер и делает то что должна
у меня получается если я так запускаю, выполняется по очереди
сначала обрабатывается первая ссылка, если прервать через CTRL+C начинается обработка второй ссылки
а я хочу что бы эти ссылки открывались паралельно если не одновременно то через какой то интервал
такое же возможно)
источник

A

Alex in Scrapy
я могу жестко ошибаться, так что заранее извините если пишу глупости)
источник

К

Кирилл in Scrapy
Ты вызываешь блокирующий код
источник

i

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

К

Кирилл in Scrapy
Да и скрапи сам по себе "асинхронный", да не сильно, грубо говоря, только то, что касается запросов
источник

i

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

i

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

i

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

A

Alex in Scrapy
ildar
вообще ты чей код юзаешь этого селенум-скрапи. или ты свой используешь?
Код мой. Пришла в голову мысль и решил попробовать.
Так то линки  обрабатываются по очереди, верно?
источник

i

ildar in Scrapy
емнип в идеале они обрабатываются в пуле твистеда. т.е. он создает пул, берет всю эту массу ссылок и начинает ее жрать в несколько рыл. Но где именно начинается это поведение я точно не скажу
источник