本篇文章整合了网络爬虫的基础知识,文章内容简明易懂。适合用来复习爬虫知识或者初识爬虫的人。
下面步入正题:

网络爬虫又被称为网络机器人,可以代替人们自动的在互联网中进行数据信息的采集与整理。在大数据时代,数据复杂度及采集数据效率是非常重要的。所以可以使用网络爬虫对数据信息进行自动采集并整合。

要学习网络爬虫,首先要认识网络爬虫,在本篇中,我来介绍一下几种典型的网络爬虫,并了解其各种常见功能。

初始网络爬虫:

网络爬虫可以自动化的浏览网络中的信息,并按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。Python语言可以很方便的写出爬虫程序,进行互联网的信息自动化检索。
每一个搜索引擎都离不开爬虫,百度的搜索引擎爬虫叫做百度蜘蛛,360的爬虫叫做360pider,搜狗的爬虫叫做Sogouspider,必应的爬虫叫Bingbot

网络爬虫的组成:

网络爬虫主要由控制节点、爬虫节点、资源库构成。
控制节点,也叫作爬虫的中央控制器,主要负责根据URL地质分配线程,并调用爬虫节点按照相关的算法,对网页进行具体的爬行。并将对应的结果储存到对应的资源库中。

网络爬虫的类型:

通用网络爬虫:也叫全网爬虫。顾名思义,爬取的资源在全网中。通用爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。
聚焦网络爬虫,主要应用在对特定信息的爬取中。将爬取的目标网页定位在与主题相关的页面中。聚焦网络爬虫主要由:URL集合、URL队列、页面爬行模块、页面分析模块、数据库、链路过滤模块等构成、
增量式网络爬虫:在网页更新的时候只更新其改变的地方,而未改变的地方则不更新。
只爬取内容发生变化的网页或者新产生的网页。
深层网络爬虫:可以爬取互联网中的深层页面。
在互联网中,网页按照存在方式进行分类,可以分为表层页面和深层页面。
所谓的 表层页面 ,指的是不需要提交表单,使用静态的链接就能够达到的静态页面。而 深层页面 则隐藏在表单后面,需要提交一定的关键词之后才能获取得到的页面。
深层网络爬虫主要由URL页面,LVS列表(;LVS指的是标签数值集合,即是填充表单的数据源)、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等部分构成。
深层网络爬虫表单的填写有两种类型:
第一种是基于领域知识的表单填写。
第二种是基于网页结构分析的表单填写。

网络爬虫技能总览图:

搜索引擎核心:

爬虫与搜索引擎的关系是密不可分的

首先搜索引擎会利用爬虫模块去爬取互联网。
然后将爬取到的网页储存在原始数据库中。
接着对原始数据库中的数据进行索引、
通过用户交互借口输入对应的信息。
(用户交互借口,相当于搜索引擎的输入框)
用户输入对应信息的同事,也会将用户的行为储存到用户日志数据库,日志分析器会根据大量的用户数据去调整原始数据和索引数据库,改变其排名结果或进行其他操作。

用户爬虫的一些事:

用户爬虫也是网络爬虫中的一种类型。
专门来爬虫互联网中用户数据的一种爬虫。
比如爬取淘宝的用户信息,对知乎的用户数据进行爬取等。
爬虫的出现,可以在一定的程度上代替手工访问网页。

网络爬虫实现原理详解:

不同类型的网络爬虫,其实现的原理也是不同的。
我在此以两种典型的网络爬虫为例。(通用网络爬虫和聚焦网络爬虫),分析下网络爬虫的是实现原理。
通用网络爬虫:

1、获取初始的URL
2、根据初始的URL爬取页面并获取新的URL
3、将新的URL放到URL队列中。
4、从URL队列中读取新的URL、并根据新的URL爬取网页。同时从新网页上获取新URL,重复爬取过程。
5、满足爬虫系统设置的停止条件时,停止爬取。


聚焦网络爬虫:
聚焦网络爬虫,由于其需要有目的地进行爬取,必须要增加对目标的定义和过滤机制。

1、对爬取目标的定义和描述。
2、获取初始的URL
3、根据初始的URL爬取页面并获取新的URL
4、从新的URL中过滤掉与爬取目标无关的链接。
5、讲过滤后的链接放到URL队列中。
6、从URL队列中根据搜索算法、确定URL的优先级。并确定下一步要爬取的URL地址。
7、根据新的URL爬取网页。同时从新网页上获取新URL,重复爬取过程。
8、满足爬虫系统设置的停止条件时,停止爬取。

爬行策略:

爬行策略简意来说是爬行的顺序。
主要由深度优先爬行策略,广度优先爬行策略、大站优先策略、反链策略、其他爬行策略等。

假如此时网页ABCDEFG都在爬行队列中,name按照不同的爬行策略,其爬取的顺序是不同的。
若按深度优先爬行策略,爬行顺序是A>D>E>B>C>F>G
按照广度优先爬行策略去爬取,顺序是A>B>C>D>E>F>G
我们还可以采用大战爬行策略。也是说网页数量越多的网站,爬取的优先级越高。

网页更新策略:

作为爬虫放,在网页更新后,我们也需要针对更新的网页部分进行调整,重新爬取。爬虫也需要根据对应策略,让不同的网页具有不同的更新优先级,优先级搞的网页更新,将获得较快的爬行响应。
**聚类分析策略。**将共性较多的聚为一类。既依据“物以类聚”的思想去实现。

网页分析算法:

搜索引擎的网页分析算法主要分为3类:基于用户行为的网页分析算法,基于网络拓扑的网页分析算法,基于网页内容的网页分析算法。
1:基于用户行为的网页分析算法
这种算法师根据用户对这些网页的访问行为,对这些网页进行评价。
2:基于网络拓扑的网页分析算法
基于网络拓扑的网页分析算法是依靠网页的链接关系、结构关系、已知网页或数据进行分析的一种算法。
3:基于网页内容的网页分析算法
在基于网页内容的网页分析算法中,会依据网页的数据,文本等网页内容特征,对网页进行相应的评价。

身份识别:

身份识别是很有趣的一块,在爬虫对网页爬取的过程中,爬虫必须要访问对应的网页,正规的爬虫一般都会告诉对应网站站长其爬虫身份,网站的管理员则可以通过爬虫告知的身份信息对爬虫的身份进行识别。这个过程就是爬虫的身份识别过程。

一般来说,爬虫在对网页进行爬取访问的时候,会通过HTTP请求中的User Agent字段告知自己的身份信息。一般爬虫访问一个网站的时候,首先会根据该站点下的Rbots.txt文件来确定可爬取的网页范围,Robots协议是需要网络爬虫共同遵守的协议。对于一些禁止的URL地址,网络爬虫不应爬取访问。同时,如果爬取某一个站点时陷入死循环,造成该站点的服务压力过大,如果有正确的身份设置,name改站点的站长则可以想办法联系到改爬虫方,然后停止对应的爬虫程序。

当然,有些爬虫会伪装成其他爬虫或浏览器去爬取网站,去获得一些额外数据,或者有些爬虫会无视Robots协议的限制而任意爬取。从技术的角度来说,这些行为实现起来并不难,但是这些行为是不提倡的!
因为只有共同遵守一个良好的网络规则,才能够达到爬虫方和站点服务方的双赢。

内容总结:

本篇内容介绍了什么是网络爬虫,网络爬虫技能总览,及网路爬虫实现原理和实现技术等概念。
如果对文章内容感兴趣的话,可以查看后续文章或留言联系我。
ps----本文一部分内容自python网络爬虫书籍中。我阅读了一遍后,重新挑出了其重要部分进行整合,言简意赅。
下一篇内容:Python爬虫之Urllib全方位解析

001:网络爬虫基础理论整合相关推荐

  1. Python 网络爬虫 001 (科普) 网络爬虫简介

    Python 网络爬虫 001 (科普) 网络爬虫简介 1. 网络爬虫是干什么的 我举几个生活中的例子: 例子一: 我平时会将 学到的知识 和 积累的经验 写成博客发送到CSDN博客网站上,那么对于我 ...

  2. Python 网络爬虫与数据采集(二)

    Python 网络爬虫与数据采集 第二部分 初章 网络爬虫初识 4. 网络爬虫请求篇 4.1 requests 库简介 4.1.1 Requests 的安装 4.1.2 Requests 基本使用 4 ...

  3. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  4. python网络爬虫的基本步骤-Python网络爬虫学习手记(1)——爬虫基础

    1.爬虫基本概念 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.--------百度百科 简单的说,爬 ...

  5. python代码大全p-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  6. python网络爬虫权威指南 百度云-Python网络爬虫权威指南 PDF 第2版

    给大家带来的一篇关于Python爬虫相关的电子书资源,介绍了关于Python.网络爬虫方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小5.54 MB,瑞安·米切尔编写,目前豆瓣.亚马逊. ...

  7. python网络爬虫权威指南 百度云-Python网络爬虫权威指南(第2版)

    版权声明 O'Reilly Media, Inc. 介绍 业界评论 前言 什么是网页抓取 为什么要做网页抓取 关于本书 排版约定 使用代码示例 O'Reilly Safari 联系我们 致谢 电子书 ...

  8. 83款 网络爬虫开源软件

    网络爬虫介绍及其比较 http://www.docin.com/p-321349858.html 1.http://www.oschina.net/project/tag/64/spider?lang ...

  9. python sub 不区分大小写_Python网络爬虫入门篇

    1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. Python入门篇:https://www.cnblo ...

最新文章

  1. js 验证码 倒计时60秒
  2. oracle参数文件initorcl位置,ORACLE参数文件
  3. 决策树算法实现(train+test,matlab) 转
  4. Sprint 站立会议(个人)
  5. 用SQL删除重复记录的N种方法
  6. 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)
  7. adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件
  8. 阿里测试环境运维及研发效率提升之道
  9. pycharm中文包:环境配置与编辑器使用(内附中文包地址)
  10. 在家想远程公司电脑?Python + 微信一键连接!
  11. mysql_ init数据类型_mysql数据类型
  12. 浏览器白屏原因思路分析
  13. 吃鸡什么耳机听声辨位比较好?适合苹果手机的耳机推荐
  14. 插入(希尔)排序时间、空间复杂度
  15. 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录
  16. sonar pdf 插件
  17. putty小键盘输入_putty或xshell上用vi/vim小键盘无法使用的解决方法-阿里云开发者社区...
  18. vs code远程连接阿里云(SSH)
  19. 全自动叠片过滤器内部滤芯讲解
  20. 计算机课程的教案模板,计算机教学设计模板.doc

热门文章

  1. linux下无法访问硬盘
  2. 防抄板加密芯片ALPU笔记
  3. 从电音元素到游戏手机:燃爆ROG电竞潮玩夜
  4. java的位桶是什么,hashmap中的存储桶究竟是什么?
  5. 网技·实验·3.29
  6. IpadOS15.4系统通用控制开启
  7. 人机界面的系统是Linux吗,西门子人机界面(HMI)和plc人机界面系统区别介绍
  8. 【天梯赛 - L2习题集】啃题(12 / 44)
  9. 零基础学习python第二课笔记
  10. 八、新人成才之路《成才大原则 你不成才是学习方法错了》