Size: a a a

2021 February 04

П

Пастырь in Scrapy
Вот start_requests метод, он же запускается после инициализации паука ?
источник

П

Пастырь in Scrapy
open_spider и close_spider когда отрабатывают?
источник

МС

Михаил Синегубов... in Scrapy
Пастырь
Вот start_requests метод, он же запускается после инициализации паука ?
да. Есть два взаимозаменяющих варианта задания стартовых адресов:
1. использовать свойство start_urls
2. использовать метод start_requests
источник

П

Пастырь in Scrapy
В доках написано что при закрытии и открытии паука. Вот только когда они закрываются, открываются :D
источник

МС

Михаил Синегубов... in Scrapy
брр, ты хочешь знать это относительно инициализации и деструктора?
источник

OS

Oleg Shleiko in Scrapy
Пастырь
В доках написано что при закрытии и открытии паука. Вот только когда они закрываются, открываются :D
источник

МС

Михаил Синегубов... in Scrapy
ага, только там не расписано когда сигналы срабатывают 😂
источник

МС

Михаил Синегубов... in Scrapy
Пастырь
open_spider и close_spider когда отрабатывают?
ну, я точно знаю что в сигнале close_spider паука не получается поднять :))
источник

S

Shaman89 in Scrapy
Пастырь
У меня вообще 2 варианта в голове.
Первый это использовать inmemory хранилище типа redis, импортировать туда все записи, и по 1 доставать. Но тогда теряется отказоустойчивость.
Второй, это брать по 100 записей, менять статус на running, вытащить данные, поставить complete. В случае закрытия паука я потом продолжу с того-же места
Примерно такая же задача стоит. Но я планировал через редис с двумя базами решать. База с урлами вся и база с куда ложить пройденные урлы
источник

П

Пастырь in Scrapy
Такое же решение подойдет ?
источник

К

Кирилл in Scrapy
Пастырь
Такое же решение подойдет ?
В общих чертах, да
источник

К

Кирилл in Scrapy
Пастырь
У меня вообще 2 варианта в голове.
Первый это использовать inmemory хранилище типа redis, импортировать туда все записи, и по 1 доставать. Но тогда теряется отказоустойчивость.
Второй, это брать по 100 записей, менять статус на running, вытащить данные, поставить complete. В случае закрытия паука я потом продолжу с того-же места
Не надо ин мемори, 7кк это достаточно много для оперативки. Рэдис умеет и на жесткий диск сбрасывать для стабильности, но не надо с этим морочиться, лучше обычную бд
источник

П

Пастырь in Scrapy
1. spider_idle забирает 100 записей из бд, меняет статус на proccess
2. Pipeline по завершению работы по урлу меняет статус на complete

Верно ?
источник

К

Кирилл in Scrapy
Пастырь
1. spider_idle забирает 100 записей из бд, меняет статус на proccess
2. Pipeline по завершению работы по урлу меняет статус на complete

Верно ?
Норм. Только подумай как ты будешь сбрасывать process если запрос зафейлится
источник

П

Пастырь in Scrapy
А я не буду. статус поставлю fail и ручками посмотрю :D
источник

К

Кирилл in Scrapy
Ну я про смену статуса и говорю) чтоб у тебя не зависли запросы
источник

П

Пастырь in Scrapy
SELECT * FROM table WHERE status = pending
ORDER BY id DESC LIMIT 100
источник

МС

Михаил Синегубов... in Scrapy
Пастырь
1. spider_idle забирает 100 записей из бд, меняет статус на proccess
2. Pipeline по завершению работы по урлу меняет статус на complete

Верно ?
1. какое "по завершению работы", может по размеру пула?
2. бери больше 100 (ну, кроме стадии отладки), хотя бы 1000 записей. По ощущениям, spider_idle возникает когда скачана и обработана последняя ссылка. Скорость, при размере блока 100 ссылок, сильно пострадает. Я бы, на 7кк вообще тысяч по 50-100 забирал
источник

П

Пастырь in Scrapy
Михаил Синегубов
1. какое "по завершению работы", может по размеру пула?
2. бери больше 100 (ну, кроме стадии отладки), хотя бы 1000 записей. По ощущениям, spider_idle возникает когда скачана и обработана последняя ссылка. Скорость, при размере блока 100 ссылок, сильно пострадает. Я бы, на 7кк вообще тысяч по 50-100 забирал
У меня примерно 7кк ссылок в базе. Приму к сведению, спасибо!
источник

П

Пастырь in Scrapy
А не может возникнуть проблема с  асинхронностью ? Допустим в один момент времени выдернется 2 раза по 50к одинаковых ссылок ?
источник