参考官方文档:https://docs.scrapy.org/en/latest/topics/jobs.html?highlight=JOBDIR#jobs-pausing-and-resuming-crawls

Scrapy原生是支持断点续爬,这意味着如果运行爬虫时发生错误或中断,可以从上次停止的位置恢复爬取。下面是一些可以实现断点续爬的方法:

  1. 使用Scrapy自带的JOBDIR设置。使用该参数可以将当前爬虫的状态存储在硬盘上,以便在后续运行时从此处继续。例如:scrapy crawl myspider -s JOBDIR=jobs/myspider-1
  2. 在settings.py文件中启用JOBDIR设置。这样可以在多个爬虫之间共享状态。例如:
JOBDIR = 'jobs'
  1. 在Spider代码中使用start_requests方法中的request.meta['foo']参数自定义断点。例如:
def start_requests(self):
last_seen = self.get_last_seen()
if last_seen:
yield scrapy.Request("http://example.com/items?page=1",
meta={'page': last_seen},
callback=self.parse_items) def parse_items(self, response):
page = response.meta.get('page', 1)
# ...
self.save_last_seen(page)

无论哪种方式,断点续爬的目标都是在发生错误时保留爬虫当前的状态,并在后续运行时从此处继续。为了成功实现断点续爬,必须确保每个页面都被处理。如果不确定一个页面是否被处理,请将其标记为不可用,直到下一个周期开始。这可以通过一个标志或者一个数据库中的字段来实现。

Scrapy自带的断点续爬JOB-DIR参数的更多相关文章

  1. scrapy爬虫之断点续爬和多个spider同时爬取

    from scrapy.commands import ScrapyCommand from scrapy.utils.project import get_project_settings #断点续 ...

  2. scrapy 断点续爬

    第一步:安装berkeleydb数据库 第二部:pip install bsddb3 第三部:pip install scrapy-deltafetch 第四部: settings.py设置 SPID ...

  3. Spider-scrapy断点续爬

    scrapy的每一个爬虫,暂停时可以记录暂停状态以及爬取了哪些url,重启时可以从暂停状态开始爬取过的URL不在爬取 实现暂停与重启记录状态 方法一: 1.首先cd进入到scrapy项目里(当然你也可 ...

  4. 【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单

    写在开头 现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy….)wisted, zope interf ...

  5. 使用Scrapy自带的ImagesPipeline下载图片,并对其进行分类。

    ImagesPipeline是scrapy自带的类,用来处理图片(爬取时将图片下载到本地)用的. 优势: 将下载图片转换成通用的JPG和RGB格式 避免重复下载 缩略图生成 图片大小过滤 异步下载 . ...

  6. python3.6 单文件爬虫 断点续存 普通版 文件续存方式

    # 导入必备的包 # 本文爬取的是顶点小说中的完美世界为列.文中的aa.text,bb.text为自己创建的text文件 import requests from bs4 import Beautif ...

  7. curl断点续载

    摘自http://blog.csdn.net/zmy12007/article/details/37157297 摘自http://www.linuxidc.com/Linux/2014-10/107 ...

  8. 关于视频断点续播和H5的本地存储

    前段时间,需要在下实现一个视频的断点续播功能,呃,我不会呀,这就很尴尬了.然后呢,在下就想起了一个叫做localStorage的东西.这是个什么东西呢?在网上查阅了一些资料后,在下发现这是webSto ...

  9. 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图

    第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scra ...

  10. scrapy请求传参-BOSS反爬

    scrapy请求传参-BOSS反爬 思路总结 首先boss加了反爬 是cookies的 爬取的内容为职位和职位描述 # -*- coding: utf-8 -*- import scrapy from ...

随机推荐

  1. 蚂蚁集团混沌工程 ChaosMeta V0.5 版本发布

    混沌工程 ChaosMeta 的全新版本 V0.5 现已正式发布!该版本包含了许多新特性和增强功能,为用户提供了支撑混沌工程各个阶段的平台能力,以及降低使用门槛的用户界面. ChaosMeta V0. ...

  2. iOS开发过程中的内存监控

  3. 每日一库:Prometheus

    什么是 Prometheus Prometheus 是一个开源的系统监控和警报工具,最初由 SoundCloud 开发,并于 2012 年发布为开源项目.它是一个非常强大和灵活的工具,用于监控应用程序 ...

  4. Solution -「CF 392C」Yet Another Number Sequence

    Description Link. 求 \(\sum_{i=1}^{n}\text{fibonacci}_{i}\times i^{k}=\sum_{i=1}^{n}(F_{i-1}+\text{fi ...

  5. 模块化打包工具-初识Webpack

    1. 为什么需要模块化打包工具 在上一篇文章中提到的ES Module可以帮助开发者更好地组织代码,完成js文件的模块化,基本解决了模块化的问题,但是实际开发中仅仅完成js文件的模块化是不够的,尤其是 ...

  6. fopen各个模式区别

    fopen 函数是C标准库中用于打开文件的函数,它接受一个文件名和一个打开模式作为参数,返回一个指向文件的指针. 这里解释各个模式的区别: "r": 以只读模式打开文件,文件必须存 ...

  7. Go 多版本管理工具

    Go 多版本管理工具 目录 Go 多版本管理工具 一.go get 命令 1.1 使用方法: 二.Goenv 三.GVM (Go Version Manager) 四.voidint/g 4.1 安装 ...

  8. 临时表、视图与系统函数_Lab2

    MySQL数据库操作 Lab1.md body { font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSys ...

  9. 低代码平台探讨-MetaStore元数据缓存

    背景及需求 之前提到我们模型驱动的实现选择的是解释型,需要模型的元数据信息,在接到请求后动态处理逻辑. 此外,应用的通用能力中还包括:页面dsl查询,菜单查询等. 而且后期加入触发器,用户自定义api ...

  10. 基于LangChain的LLM应用开发3——记忆

    此情可待成追忆,只是当时已惘然.我们人类会有很多或美好或痛苦的回忆,有的回忆会渐渐模糊,有的回忆午夜梦醒,会浮上心头. 然而现在的大语言模型都是没有记忆的,都是无状态的,大语言模型自身不会记住和你对话 ...