使用Crawler框架搭建自己的爬虫框架MyCrawler
自己写一个爬虫框架的目的:
- 完美架构
- 在实际的数据采集编码过程中,发现代码比较乱,抓取数据,存储数据的代码混杂在一起,为了构建比较完美的数据采集框架
- 敏捷开发
- 将数据采集进行标准流程化,每个标准流程都封装成组件,在实际开发过程中直接调用组件即可,只需编写核心的逻辑
- 代码生成
- 可直接生成大部分的代码,开发者只需补充核心逻辑
爬虫框架与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的更多相关文章
- android studio 框架搭建:加入注解框架Annotations
参考github上的demo,新建一个project后,会有一个位于app文件夹下的局部build.gradle文件和一个位于根目录project下的全局build.gradle文件,我们要修改的是局 ...
- JAVA 爬虫框架webmagic 初步使用Demo
一想到做爬虫大家第一个想到的语言一定是python,毕竟python比方便,而且最近也非常的火爆,但是python有一个全局锁的概念新能有瓶颈,所以用java还是比较牛逼的, webmagic 官网 ...
- webapi框架搭建系列博客
webapi框架搭建系列博客 webapi框架搭建-创建项目(一) webapi框架搭建-创建项目(二)-以iis为部署环境的配置 webapi框架搭建-创建项目(三)-webapi owin web ...
- 手把手教你如何新建scrapy爬虫框架的第一个项目(上)
前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...
- 小白学 Python 爬虫(33):爬虫框架 Scrapy 入门基础(一)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- C# 爬虫框架实现 概述
目录: C# 爬虫框架实现 概述 C# 爬虫框架实现 流程_爬虫结构/原理 C# 爬虫框架实现 流程_各个类开发 C# 爬虫框架实现 流程_遇到的问题 C# 爬虫框架实现 后记 C#爬虫框架实现 源代 ...
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师 ...
- 怎么在32位windows系统上搭建爬虫框架scrapy?
禁止转载: 自学python,然后搭建爬虫框架scrapy.费了我一上午的心血.终于搭建成功,以防以后忘记搭建流程,特此撰写此贴,开写 ******************************** ...
- python网络爬虫(14)使用Scrapy搭建爬虫框架
目的意义 爬虫框架也许能简化工作量,提高效率等.scrapy是一款方便好用,拓展方便的框架. 本文将使用scrapy框架,示例爬取自己博客中的文章内容. 说明 学习和模仿来源:https://book ...
随机推荐
- windows系统下用python更新svn和Git
转载请标明出处:http://www.cnblogs.com/zblade/ 最近在思考怎么实现python的一键打包,利用python的跨平台特性,可以实现在windows和mac下均可执行的特点. ...
- vue-cli3安装过程
作为一个本来是java开发的搬运工,在公司前端人员缺乏的时候,就直接顶上来开发前台页面了(话说我已经很久很久没写java代码了(:′⌒`)) 好吧言归正传,刚开始弄前台就是vue,vue2还没弄熟,老 ...
- vue.js移动端配置flexible.js
前言 最近在用vue做移动端项目,网上找了一些移动端适配的方案,个人觉得手淘团队flexible.js还是比较容易上手,在这里做下总结. 主体 flexible.js适配方案采用rem布局,根据屏幕分 ...
- SLAM+语音机器人DIY系列:(二)ROS入门——4.如何编写ROS的第一个程序hello_world
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- golang实现aes-cbc-256加密解密过程记录
我为什么吃撑了要实现go的aes-cbc-256加密解密功能? 之前的项目是用php实现的,现在准备用go重构,需要用到这个功能,这么常用的功能上网一搜一大把现成例子,于是基于go现有api分分钟实现 ...
- 《C#并发编程经典实例》学习笔记—2.6 任务完成时的处理
问题 正在 await 一批任务,希望在每个任务完成时对它做一些处理.另外,希望在任务一完成就立即进行处理,而不需要等待其他任务. 问题的重点在于希望任务完成之后立即进行处理,而不去等待其他任务. 这 ...
- AngularJs with Webpackv1 升級到 Webpack4
本篇記錄一下升級的血淚過程 請注意升級前請先創一個新目錄將升級應用與舊應用隔離 1. 需要將相關的套件做統一升級的動作,已確認需要升級所有舊的loaders 其它應用的套件可先不做升級的動作 (如果編 ...
- 第一册:lesson 119.
原文: A true story. question:Who called out to the thieves in the dark? Do you like stories? I want to ...
- Less与TypeScript的简单理解与应用,并使用WebPack打包静态页面
既然选择了远方,便只顾风雨兼程 __ HANS许 系列:零基础搭建前后端分离项目 系列:零基础搭建前后端分离项目 创建空项目 使用Less 使用TypeScript 使用WebPack 开始写项目 总 ...
- 大数据---Ranger-1
背景:从软通出来,告别华为外包,离开H区,进入了一家搞大数据的创业公司,感觉周围都好陌生,记录下自己大数据的career! 2019-03-4新的征程-入职第一天: 一.办理入职手续 公司人比较少,没 ...