自己写一个爬虫框架的目的:
  • 完美架构

    • 在实际的数据采集编码过程中,发现代码比较乱,抓取数据,存储数据的代码混杂在一起,为了构建比较完美的数据采集框架
  • 敏捷开发
    • 将数据采集进行标准流程化,每个标准流程都封装成组件,在实际开发过程中直接调用组件即可,只需编写核心的逻辑
  • 代码生成
    • 可直接生成大部分的代码,开发者只需补充核心逻辑
爬虫框架与Web框架的对比:
 
  爬虫框架 Web框架
脚本类型  不区分客户端和服务端; 控制台程序,是独立的进程  区分服务端和客户端,且是服务端程序; 运行的容器是Web服务器
入口脚本  是爬虫脚本在运行的入口;例如:main.js 使用唯一的入口脚本,是服务区接收Web请求的入口;例如index.php
处理  已进程为核心 采用路由分发,控制器为中心的模式
数据存储  主要为数据插入存储  包括数据的增删改查
页面  从页面中采集数据  编写页面并使用数据渲染页面
中间件  过滤爬虫存储数据的职责链,通常指数据的除重去噪  过滤HTTP请求的职责链
爬虫框架MyCrawler的特性:
  • 使用面向对象方法封装数据采集类
  • 使用面向对象方法封装数据存储类
  • 代码生成器
  • 自动数据去重
UML中类关系详解
  • 虚线箭头指向依赖
  • 实线箭头指向关联
  • 虚线三角指向接口
  • 实线三角指向父类
  • 空心菱形能分离而独立存在,是聚合
  • 实心菱形精密关联不可分,是组合

MyCrawler爬虫框架类图

新建一个空项目,命名为MyCrawler

初始化package.json文件

npm init --yes

例如:

F:\project\MyCrawler>npm init --yes
Wrote to F:\project\MyCrawler\package.json:

{
  "name": "MyCrawler",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

下载安装Crawler框架

npm install crawler

例如:

F:\project\MyCrawler>npm install crawler
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN MyCrawler@ No description
npm WARN MyCrawler@ No repository field.

+ crawler@
added  packages from  contributors and audited  packages .699s
found  vulnerabilities ( low,  moderate)
  run `npm audit fix` to fix them, or `npm audit` for details

注意:如果安装失败,则切换使用另一个网络重试,因为有可能是网络不好,或者网络无法达到目的主机

使用Crawler框架搭建自己的爬虫框架MyCrawler的更多相关文章

  1. android studio 框架搭建:加入注解框架Annotations

    参考github上的demo,新建一个project后,会有一个位于app文件夹下的局部build.gradle文件和一个位于根目录project下的全局build.gradle文件,我们要修改的是局 ...

  2. JAVA 爬虫框架webmagic 初步使用Demo

    一想到做爬虫大家第一个想到的语言一定是python,毕竟python比方便,而且最近也非常的火爆,但是python有一个全局锁的概念新能有瓶颈,所以用java还是比较牛逼的, webmagic 官网 ...

  3. webapi框架搭建系列博客

    webapi框架搭建系列博客 webapi框架搭建-创建项目(一) webapi框架搭建-创建项目(二)-以iis为部署环境的配置 webapi框架搭建-创建项目(三)-webapi owin web ...

  4. 手把手教你如何新建scrapy爬虫框架的第一个项目(上)

    前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...

  5. 小白学 Python 爬虫(33):爬虫框架 Scrapy 入门基础(一)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. C# 爬虫框架实现 概述

    目录: C# 爬虫框架实现 概述 C# 爬虫框架实现 流程_爬虫结构/原理 C# 爬虫框架实现 流程_各个类开发 C# 爬虫框架实现 流程_遇到的问题 C# 爬虫框架实现 后记 C#爬虫框架实现 源代 ...

  7. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师 ...

  8. 怎么在32位windows系统上搭建爬虫框架scrapy?

    禁止转载: 自学python,然后搭建爬虫框架scrapy.费了我一上午的心血.终于搭建成功,以防以后忘记搭建流程,特此撰写此贴,开写 ******************************** ...

  9. python网络爬虫(14)使用Scrapy搭建爬虫框架

    目的意义 爬虫框架也许能简化工作量,提高效率等.scrapy是一款方便好用,拓展方便的框架. 本文将使用scrapy框架,示例爬取自己博客中的文章内容. 说明 学习和模仿来源:https://book ...

随机推荐

  1. 页面优化,谈谈重绘(repaint)和回流(reflow)

    一.前言 偶尔在面试过程中遇到过重汇与回流reflow的问题,毕竟页面优化也是考核一个开发者能力的关键之一,上篇文章聊了下documentfragment也是为了减轻回流问题,那么本篇文章好好介绍下重 ...

  2. [Javascript] js的类和对象

    类 graph LR 类-->构造函数 类-->prototype对象 类-->instanceof运算符 类-->constructor属性 类-->isPrototy ...

  3. Redis在Windows中安装方法

    首先下载Redis 下载地址:https://github.com/MSOpenTech/redis/releases Redis支持32位和64位,这个需要根据你系统平台的实际情况选择,我的是64位 ...

  4. 使用原生php爬取图片并保存到本地

    通过一个简单的例子复习一下几个php函数的用法 用到的函数或知识点 curl 发送网络请求 preg_match 正则匹配 代码 $url = 'http://desk.zol.com.cn/bizh ...

  5. 硬杠后端(后端坑系列)——Django前期工作

    Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的框架模式. MVC MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件 ...

  6. 在 Angular 8 中,我们可以期待些什么

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 本文由葡萄城翻译并发布 --- Angular 作为一款优秀的前端框架,自诞生之日起,就致力于面向前端开发者 ...

  7. 浅谈AndroidGPU过度绘制、GPU呈现模式分析及相关优化

    在真机设备下有一个开发者选项,这个大家都知道,我们最常用的就打开'USB调试'功能,方便真机调试. 在这开发者选项中还有个选项,'调试GPU过度绘制' 这里选择第二个选项'显示过度绘制区域' 可以看到 ...

  8. Spring boot 发送邮件示例

    最近的一个项目中用到了邮件发送,所以研究了一下.将其总结下来. 首先 登录邮箱 -->设置-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务--> ...

  9. Java:API文档;文档注释中的javadoc标记;官方API;自己动手给项目建一个API文档

    1.什么是API文档 在Java语言中有3种注释 //单行注释 /* 多行注释 */ /** * 文档注释 */ API(应用程序接口)文档就是用javadoc命令提取文档注释生成的,html格式,用 ...

  10. Delphi中使用ISuperObject解析Json数据

    Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即Isuper ...