#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 просто добавьте его.