Size: a a a

2021 May 24

S

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

S

Stanislav in Scrapy
Правило одно для всех страниц Rule(LinkExtractor(allow=('k-',)), callback='parse_product'),
   )

   def parse_product(self, response):
источник

(

(o_O) in Scrapy
Скрапи страницы скачал, а парсер (user code) его не разбирает (видимо).
scrapy shell http://...

spider.parse_product(response)

работает?
источник

AR

Andrey Rahmatullin in Scrapy
Традиционно предлагаю выкинуть CrawlSpider, когда такие вопросы
источник

(

(o_O) in Scrapy
Ай, а ведь удобная вещь
источник

AR

Andrey Rahmatullin in Scrapy
Когда понимаешь как она работает
источник

AR

Andrey Rahmatullin in Scrapy
Или хотя бы когда не надо колбэки писать :))
источник

S

Stanislav in Scrapy
вот я и пытаюсь разобраться что не так
источник

(

(o_O) in Scrapy
Ну так вызов метода spider.parse_product(response) в шелле результат дает?
источник

(

(o_O) in Scrapy
А где правило для пагинации?
источник

S

Stanislav in Scrapy
ща, не все так быстро. я сегодня как Юлий Цезарь 10 дел одновременно и все сыпется из рук.
источник

(

(o_O) in Scrapy
И вот это allow=('k-',) весьма широко
источник

(

(o_O) in Scrapy
По сути должно быть два правила - одно для перехода по страницам каталога, второе для разбора страниц продуктов
источник

(

(o_O) in Scrapy
Типа
rules = [
   Rule(LinkExtractor(r'\?page=')),
   Rule(LinkExtractor(r'/goods/'), 'parse_product'),
]
источник

S

Stanislav in Scrapy
>>> spider.parse_product(response)
<generator object MetalloprokatSpider.parse_product at 0x0000007EFC4B4270>
источник

(

(o_O) in Scrapy
Ну а развернуть генератор? list(spider.parse_product(response))
источник

S

Stanislav in Scrapy
я хотел только пройтись по страницам каталога не проваливаясь в страницы продуктов.
источник

(

(o_O) in Scrapy
а ок
источник

S

Stanislav in Scrapy
а вот тут я похоже не правильно понимаю работу CrawlSpider. Я думал что он видя правило сам "волшебно феерическим образом" пережевывает сайт и собирает все ссылки попадающие под это правило и тальше включается процедура из callback='parse_product  для разбора этих страниц .
источник

(

(o_O) in Scrapy
Волшебства нет. LinkExtractor извлекает ссылки согласно параметрам, а Rule следует по ним, вызывая callback, если задан
источник