Как пропустить дубликат в scrapy python

#python #python-3.x #scrapy #duplicates

#python #python-3.x #scrapy #дубликаты

Вопрос:

Я новичок в Scrapy. Я написал этот скрипт :

 class MySpider(scrapy.Spider):
        #identity
        name="mysite"

        #Request
        def start_requests(self):
            url= 'example.com/doc/file/vid'

            yield scrapy.Request(url=url, callback=self.parse)

        #Response
        def parse(self, response):
            loader = ItemLoader(item=VideoInfoItem(), response=response)

            for info in response.selector.xpath("//div[contains(@class, 'thumb-list__item')]"):
                loader= ItemLoader(item=InfoItem(), selector=info, response=response)
                loader.add_xpath('text', ".//div[@class='info']/a")
                loader.add_xpath('url', ".//div[@class='info']/a/@href")
                url = video.xpath(".//a[@class='image-container], callback=self.parse_video)
  

Когда я снова запускаю скрипт, я хочу пропустить дубликаты перед #Response .
Я попробовал несколько вещей, но ничего не вышло.

Комментарии:

1. Правильно ли я вас понимаю, что вы запускаете скрипт во второй раз с того же начального URL и хотите пропустить все стороны, которые вы посетили при первом запуске? Итак, вы просто хотите продолжить, вы остались?

2. Да, именно это я и имею в виду

3. Я хочу пропустить все сообщения на сайте, который я уже посещаю.

Ответ №1:

Чтобы продолжить обход с точки, на которой вы остановились в предыдущем запуске, вы должны убедиться, что вся необходимая информация сохранена после запуска. Как указано в документации scrapy:

Чтобы включить поддержку сохранения, вам просто нужно определить каталог заданий с помощью параметра JOBDIR.

Вы можете либо добавить этот параметр с помощью settings.py файла:

 JOBDIR = 'crawls/somespider-1'
  

или запустив свой spider с помощью следующей команды:

 scrapy crawl somespider -s JOBDIR=crawls/somespider-1
  

Вы должны предпочесть первый вариант, поскольку он позволяет вам легко добавлять дополнительные настройки к вашему spider.

Комментарии:

1. Я не вижу никакого #JOBDIR в settings.py. Я действительно не понимаю. Есть примеры?

2. Смотрите мой обновленный ответ. Если вы не видите параметр в settings.py просто добавьте его.