在第一境中,我们主要了解了爬虫的一些基本原理,说原理也行,说基础知识也罢,结果就是已经知道一个小爬虫是如何诞生的了~那么现在,请默默回想一下,在第一境中,您都掌握了哪些内容?哪些还比较模糊?如果还有什么不清楚或不牢固的地方,建议还是先返回去再看一遍,毕竟看比我写要快得多~

如果都掌握差不多了,OK,本着本书”看完丢掉“的理念,就不用再去想它了,那么,恭喜各位已经阅读过本书第一境的朋友们,已经可以正式突破第一境,进入到爬虫境界的第二境了,接下来不要懈怠,让我们继续新的征程!

我们在第一境中,一直都是在使用WebRequest和WebResponse这两个抽象类。它们两个在是Web爬虫领域的核心内容,毫不夸张的说,熟练掌握了它们,就相当于成功了一大半:)

注意在这里,我还是很小心谨慎的用词,在“Web爬虫领域”,而不是爬虫领域,本书的抽象概念(从讲解的角度出发,划分层级)下,爬虫领域可以划分为以下几个层级,目前只打算以Windows平台入手,对于跨平台的朋友,可能要失望了,但我毕竟个人精力有限,还请多海涵了。

Windows系统平台
扩展分布式层级 主要包含多节点爬虫的任务分配计划、负载等等。
⇪
应用层级 主要用来控制采集配置、计划、管理以及对采集后的数据的后续处理。也算是为之后扩展到分布式体系的一个准备吧。
⇪
Web层级 以WebRequest及WebResponse为基础的Web数据采集。
⇪
Socket层级 直接建立Socket连接进行数据采集,可以支持大部分协议及自定义协议数据采集。
⇪
驱动层级 从系统驱动出发,主要通过过滤网络数据包来实现数据采集。

从上面的表格可以看出,Web层级,处于中间位置,那么为什么要从中间位置开始呢,因为再往下沉甸的Socket层级以及驱动层级,使用的场景还是比较少的,而且处理Socket,C#还好,但是处理驱动,C#就力不从心了。我们就从大部分同学关注的重点开始,也是对市场的有所适应吧。Web层级与应用层级,在范例上,其实是很难分开的,所以,我们在讲解过程中,也是一起的。说完Web层级+应用层级,主要是说说怎么扩展到分布式爬虫体系,这个也是很多人关注的点;另外再将Socket层级作为一个框架的补充;至于驱动层级,可以用C++来实现,不过要是放在本书中,好像又有点与书名冲突,我再考虑考虑,如果另立一本专门写驱动的书呢:P

好,再次恭喜大家完成了第一境的阅读,在第二境中,主要是了解Web层级及应用层级的内容,结合多个案例,以实操为基础,将会对爬虫在实际工作中的套路有更多的了解。就让我们继续前进,开启第二境之旅吧!

 

喜欢本系列丛书的朋友,可以点击链接加入QQ交流群(994761602)【C# 破境之道】
方便各位在有疑问的时候可以及时给我个反馈。同时,也算是给各位志同道合的朋友提供一个交流的平台。
需要源码的童鞋,也可以在群文件中获取最新源代码。

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第六节:第一境尾声的更多相关文章

  1. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第一节:HTTP协议数据采集

    首先欢迎您来到本书的第二境,本境,我们将全力打造一个实际生产环境可用的爬虫应用了.虽然只是刚开始,虽然路漫漫其修远,不过还是有点小鸡冻:P 本境打算针对几大派生类做进一步深耕,包括与应用的结合.对比它 ...

  2. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第五节:数据流处理的那些事儿

    为什么说到数据流了呢,因为上一节中介绍了一下异步发送请求.同样,在数据流的处理上,C#也为我们提供几个有用的异步处理方法.而且,爬虫这生物,处理数据流是基础本能,比较重要.本着这个原则,就聊一聊吧. ...

  3. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第二节:WebRequest

    本节主要来介绍一下,在C#中制造爬虫,最为常见.常用.实用的基础类 ------ WebRequest.WebResponse. 先来看一个示例 [1.2.1]: using System; usin ...

  4. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第一节:整体思路

    在构建本章节内容的时候,笔者也在想一个问题,究竟什么样的采集器框架,才能算得上是一个“全能”的呢?就我自己以往项目经历而言,可以归纳以下几个大的分类: 根据通讯协议:HTTP的.HTTPS的.TCP的 ...

  5. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第四节:同步与异步请求方式

    前两节,我们对WebRequest和WebResponse这两个类做了介绍,但两者还相对独立.本节,我们来说说如何将两者结合起来,方式有哪些,有什么不同. 1.4.1 说结合,无非就是我们如何发送一个 ...

  6. 《C# 爬虫 破境之道》:第一境 爬虫原理 — 第三节:WebResponse

    第二节中,我们介绍了WebRequest,它可以帮助我们发送一个请求,不过正所谓“来而不往非礼也”,对方收到我们的请求,不给点回复,貌似不太合适(不过,还真有脸皮厚的:P). 接下来,就重点研究一下, ...

  7. 《C# 爬虫 破境之道》:概述

    第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. ...

  8. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第四节:小说网站采集

    之前的章节,我们陆续的介绍了使用C#制作爬虫的基础知识,而且现在也应该比较了解如何制作一只简单的Web爬虫了. 本节,我们来做一个完整的爬虫系统,将之前的零散的东西串联起来,可以作为一个爬虫项目运作流 ...

  9. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第五节:小总结带来的优化与重构

    在上一节中,我们完成了一个简单的采集示例.本节呢,我们先来小结一下,这个示例可能存在的问题: 没有做异常处理 没有做反爬应对策略 没有做重试机制 没有做并发限制 …… 呃,看似平静的表面下还是隐藏着不 ...

随机推荐

  1. 21个项目玩转深度学习:基于TensorFlow的实践详解06—人脸检测和识别——项目集锦

    摘自:https://github.com/azuredsky/mtcnn-2 mtcnn - Multi-task CNN library language dependencies comment ...

  2. 【u107】数字游戏(bds)

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行 ...

  3. linux /proc 接口和共享中断

    在系统中安装共享处理者不影响 /proc/stat, 它甚至不知道处理者. 但是, /proc/interrupts 稍稍变化. 所有同一个中断号的安装的处理者出现在 /proc/interrupts ...

  4. js操作改变原数组的解决方法

    最近在开发的时候发现js中的循环操作会改变原数组,var一个变量承接也不行 甚至连map方法都会改变原数组,下面是解决方法 let a = ['a','b','c'] let b = [[2, 0, ...

  5. C# 如何写出一个不能被其他程序集继承的抽象类

    我需要限定某个抽象类只能在我程序集类实现,而不支持其他程序集实现,也就是我需要一个不能被继承的抽象类 在 C# 里面有抽象类和接口,这两个都是期望被继承才能被使用,而抽象类是可以做到只能在自己程序集和 ...

  6. 相似文本文档分析之SimHash算法

    Simhash算法: Simhash算法由Google的Charikar提出,是将一篇文档转化为n位的签名,通过比较签名的相似度来计算原文档的相似度.签名越相近,则文档越相近.因此,整个过程就不会涉及 ...

  7. CentOS 7防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤. 1.关闭firewall: systemctl stop firewalld.service #停止f ...

  8. 【网摘】一个用shell写的俄罗斯方块

    一位大神的shell,值得学习:https://blog.csdn.net/zhenliang8/article/details/85316926 详见下: #!/bin/bash APP_NAME= ...

  9. DataTable转成实体列表 和 DataRow转成实体类

    #region DataTale转为实体列表 /// <summary> /// DataTale转为实体列表 /// </summary> /// <typeparam ...

  10. 小白进阶之路-python格式化输出

    1.不使用格式化前:传值时比较麻烦而且不精确. 2.格式化输出后,%代表先占个位,s代表字符串,%s代表这里之后会传一个字符串类型的值,%s其实可以接受任意类型的值:%d传入的值要求必须是数字. %s ...