Size: a a a

2019 July 27

MV

Maxim Vynogradov in Scrapy
Привет!
не получается в CrawlSpider =(
рул почему-то не отрабатывает. могу код сбросить
источник

MV

Maxim Vynogradov in Scrapy
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor


class SmartphoneSpiderSpider(CrawlSpider):
   name = 'smartphone_spider'
   allowed_domains = ['hotline.ua']
   start_urls = ['https://hotline.ua/mobile/mobilnye-telefony-i-smartfony/']

   rules = (
       Rule(LinkExtractor(restrict_xpaths='//li[@class="product-item"]/div[@class="item-info"]/p[@class="h4"]/a'), callback='parse_item', follow=True),
   )

   def parse_item(self, response):
       print('---')
       card_title = response.css('.card-title::text').get()
       yield { card_title }

   def parse(self, response):
       pass
       # product_items = response.css('.product-item .item-info a::attr(href)').getall()
       # for product in product_items:
       #     yield { product: product }

       # next_page = int(response.css('.pages.active::text').get()) + 1
       # last_page= int(response.css('a.pages::text').getall()[-1])
       # print('!!!!!', next_page)
       # print('!!!!!', last_page)
       # if next_page <= last_page:
       #     absolute_next_page_url = response.urljoin('?p=' + str(next_page))
       #     yield scrapy.Request(absolute_next_page_url)
источник

MV

Maxim Vynogradov in Scrapy
при чём я по xpath в браузере нахожу что нужно:
источник

MV

Maxim Vynogradov in Scrapy
источник

s

serhii in Scrapy
Maxim Vynogradov
Привет!
не получается в CrawlSpider =(
рул почему-то не отрабатывает. могу код сбросить
в консоли пробоавл его вызвать и посмотреть, что за линки он собирает?
источник

MV

Maxim Vynogradov in Scrapy
serhii
в консоли пробоавл его вызвать и посмотреть, что за линки он собирает?
сорри, я только что методом тыка проблему нашёл - у кравл спайдеров по идее не должно быть parse метода =)
буквально сейчас нашёл
----
в консоль не выводило ничего)
источник

s

serhii in Scrapy
Maxim Vynogradov
сорри, я только что методом тыка проблему нашёл - у кравл спайдеров по идее не должно быть parse метода =)
буквально сейчас нашёл
----
в консоль не выводило ничего)
там дебажить можно . скрапи шел урл и потом в консоли линк екстратор вызвать.
можно пдб так же пораставлять и подебажить.
но раз рабоатет, то ок
источник

MV

Maxim Vynogradov in Scrapy
serhii
там дебажить можно . скрапи шел урл и потом в консоли линк екстратор вызвать.
можно пдб так же пораставлять и подебажить.
но раз рабоатет, то ок
не знал, а как дебажить то? что почитать про это?
источник

s

serhii in Scrapy
Maxim Vynogradov
не знал, а как дебажить то? что почитать про это?
источник

s

serhii in Scrapy
import pdb; pdb.set_trace() вставляй в нужные места и запускай, как вариант
источник

MV

Maxim Vynogradov in Scrapy
serhii
import pdb; pdb.set_trace() вставляй в нужные места и запускай, как вариант
спасибо) пайтон и скрапи пару раз в год юзаю) до следующего раза забуд =)
источник

s

serhii in Scrapy
но а вообще scrapy shell https://hotline.ua/
а потмо в терминале запускай линкекстратор или делай, что хочешь
источник

MV

Maxim Vynogradov in Scrapy
serhii
но а вообще scrapy shell https://hotline.ua/
а потмо в терминале запускай линкекстратор или делай, что хочешь
понял, да я в принципе так придрочился, в консольке хрома по началу
источник

MV

Maxim Vynogradov in Scrapy
к стати, это норм что я не пользуюсь хедлес браузером поверх скрапи?
источник

К

Кирилл in Scrapy
ещё как вариант использовать дебагер из IDE если ты ей пользуешься
или подключиться к  https://doc.scrapy.org/en/latest/topics/telnetconsole.html
источник

К

Кирилл in Scrapy
Maxim Vynogradov
к стати, это норм что я не пользуюсь хедлес браузером поверх скрапи?
90% случаев он не нужен
источник

MV

Maxim Vynogradov in Scrapy
Кирилл
90% случаев он не нужен
понял, спасиб
источник

К

Кирилл in Scrapy
Если ты уже получаешь данные, своим парсером, то точно не нужен)
источник

s

serhii in Scrapy
Maxim Vynogradov
к стати, это норм что я не пользуюсь хедлес браузером поверх скрапи?
его и не надо использовать
источник

Y

Yurii in Scrapy
Пока народ активный
Напомните пожалуйста. Слышал что item ошибку отсутствия пути в поиске обрабатывает.
При таком написании в пауке ошибки не будет?
item['image_url'] = response.css('#screenshot-image::attr(src)').get()
источник