Size: a a a

2020 September 15

К

Кирилл in Scrapy
будет первая+все остальные
источник

К

Кирилл in Scrapy
а сейчас у тебя только все остальные
источник

S

Spirit💎 in Scrapy
но это я еще не проверил, используются ли прокси сами, не кормил их скрапи. решил сначала правило написать
источник

S

Spirit💎 in Scrapy
LinkExtractor из правила будет использовать meta={'proxy': None}, который указан в start_requests?
источник

S

Spirit💎 in Scrapy
или все таки нет
источник

i

i in Scrapy
похоже хорошо, шо я еще и не добрался до этого crawlspider'a
источник

i

i in Scrapy
источник

i

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

К

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

i

i in Scrapy
о чем тебе Кирилл уже 2 раза написал
источник

S

Spirit💎 in Scrapy
self.rules = (
   Rule(LinkExtractor(unique=True), callback='parse', follow=True, process_request='process_request'),
)
источник

i

i in Scrapy
аа, ну вы видать в рассуждениях далеко ушли, я еще только в самом начале)
источник

S

Spirit💎 in Scrapy
вроде то что нужно
источник

К

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

К

Кирилл in Scrapy
Короче, основное что нужно знать про кравл паука, это то, что если нет явного калбэка оно вызовет _parse как калбэк, и там будет вся эта логика по сбору урлов и генерации новых запросов
источник

К

Кирилл in Scrapy
Поэтому в старт ревестс не должно быть калбэка, чтоб оно смогло запустить свои экстракторы и т.п., а везде в других местах должен быть калбэк
источник

К

Кирилл in Scrapy
Соответсвенно так как для первых запросов нельзя напрямую указать калбэк, для этого сделали отдельныйм метод который вызывается для них. Чтоб поведение было одинаковое нужно прописать

def parse_start_url(self, response, **kwargs):
   return self.parse(response, **kwargs)
Если правильно помню
источник

S

Spirit💎 in Scrapy
Кирилл
Соответсвенно так как для первых запросов нельзя напрямую указать калбэк, для этого сделали отдельныйм метод который вызывается для них. Чтоб поведение было одинаковое нужно прописать

def parse_start_url(self, response, **kwargs):
   return self.parse(response, **kwargs)
Если правильно помню
rules = [Rule(LinkExtractor(), callback='parse', follow=True, process_request='process_request')]

то есть, для первого запроса не сработает process_request?
источник

К

Кирилл in Scrapy
я такие тонкости не помню, вроде нет
источник

К

Кирилл in Scrapy
Нет, не сработает, нужно и там и там прописать
источник