网络爬虫(又称为网页蜘蛛,网络机器人,更经常的称为网页追逐者),它按照一定的规则自动地抓取网络信息。

1. 产生背景

随着时代的进步,互联网上拥有大量的信息,但是我们该如何高效的获取这些信息成为了一个挑战,传统的搜索引擎可以帮助我们解决部分问题,但是具有一定的局限性:

1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通过搜索引擎所返回的结果包含大量用户不关心的网页。

2) 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。

3) 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

4)  通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询

为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

2. 爬虫的分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。

1) 通用网络爬虫

通用网络爬虫又称全网爬虫,它的爬行范围和数量比较庞大,因此对速度和存储空间要求比较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。为提高工作效率,通用网络爬虫会采取一定的爬行策略,常用的爬行策略有深度优先策略和广度优先策略。

2) 聚焦网络爬虫

聚焦网络爬虫,又称主题网络爬虫,根据预定义的主题来进行相关页面的爬取,与通用网络爬虫想必,它的爬取范围更为精准,会爬取与主题相关的页面,节省了硬件和网络资源。

3) 增量式网络爬虫

增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面

4) 深层网络爬虫

Web 页面按存在方式可以分为表层网页和深层网页,深层网页是指大多内容不能通过静态获取,需要用户提交关键词才能获取到隐藏在搜索表单后面的内容。Deep Web 爬虫体系结构包含六个基本功能模块 (爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS 控制器)和两个爬虫内部数据结构(URL 列表、LVS 表), 其中 LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源。

3. 爬虫的基本流程

爬虫的基本工作流程如下图:

1) 发送请求

通过HTTP库向目标网站发送一个请求,等待响应。

2) 获取响应内容

服务器正常响应后能得到一个Response,内容为获取页面的内容,可能是HTML、Json字符或者二进制数据等类型。

3) 解析内容

得到的内容如果是html,可以通过正则表达式或网页解析库进行解析,如果是json可以直接转换为json对象解析,如果是二进制数据可以保存后作进一步处理。

4) 保存数据

把解析后的数据保存下来,可以是文本,也可以保存到数据库当中。

4. 总结

本节我们先进行爬虫的简单介绍,爬虫可以使用Python或者PHP等多种语言,但是大多数人会选择Python来编写爬虫程序,因为Python不仅语法简单易上手,它还拥有庞大的开发者社区和规模巨大的模块库,是写爬虫程序的最好选择。

爬虫python和c语言区别_爬虫概述 - Python教程 - C语言网相关推荐

  1. python和matlab的区别_我为什么选择Python,不是Matlab和R语言呢?

    做数据分析.科学计算等离不开工具.语言的使用,目前最流行的数据语言,无非是MATLAB,R语言,Python这三种语言,但今天大圣众包(www.dashengzb.cn)小编简单总结了python语言 ...

  2. 爬虫分页爬取猎聘_想把python爬虫了解透彻吗?一起盘它 ! !

    原理 传统的爬虫程序从初始web页面的一个或多个url开始,并获取初始web页面的url.在抓取web页面的过程中,它不断地从当前页面中提取新的url并将其放入队列中,直到满足系统的某些停止条件.聚焦 ...

  3. python post和get区别_python爬虫post和get有什么不同,区别是什么

    python爬虫post和get有什么不同,区别是什么 发布时间:2020-07-20 11:15:41 来源:亿速云 阅读:64 作者:清晨 这篇文章将为大家详细讲解有关python爬虫post和g ...

  4. python爬去百度图片_爬虫篇| 爬取百度图片(一)

    什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  5. python的scrapy爬虫模块间进行传参_小猪的Python学习之旅 —— 4.Scrapy爬虫框架初体验...

    小猪的Python学习之旅 -- 4.Scrapy爬虫框架初体验 Python 引言: 经过前面两节的学习,我们学会了使用urllib去模拟请求,使用 Beautiful Soup和正则表达式来处理网 ...

  6. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

  7. python批量下载静态页面_爬虫实战之,爬取壁纸,批量下载

    一.前言 在开始写爬虫之前,我们先了解一下爬虫 首先,我们需要知道爬虫是什么,这里直接引用百度百科的定义 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按 ...

  8. python爬取豆瓣短评_爬虫-爬取豆瓣短评

    爬虫-爬取豆瓣短评 啥是爬虫? ​按照一定的规则,自动地抓取互联网信息的程序. 为啥要用爬虫? ​可以利用爬虫自动地采集互联网中的信息,采集回来后进行相应的存储或处理,在需要检索某些信息的时候,只需在 ...

  9. python双色球的开发原理_我用Python爬虫获取数据,分析双色球中奖概率,差点就中了...

    很多人喜欢买彩票,但是经常买彩票的人要么想着一夜暴富,要么想着改变命运,要么是娱乐娱乐,但是小编也要提醒大家一句,哪里能赚钱,哪里就有奸商,做事须谨慎. 前两天,在网上看到一个有意思的问题:彩票预测靠 ...

最新文章

  1. 设置为true有什么区别_腻子粉和腻子膏到底有什么区别,腻子粉厂家来为你讲解...
  2. split()的使用
  3. debian预装环境软件的设置
  4. 汇编语言笔记17-使用BIOS进行键盘输入和磁盘读写
  5. 从Delphi 7升级到Delphi XE
  6. centos7系统根目录扩容
  7. Java基础面试题,java初级面试笔试题
  8. 数据中心安全风控_平安银行Hadoop集群跨数据中心迁移项目告捷项目骨干专访
  9. BZOJ 1013 球形空间产生器
  10. matlab做三次拉格朗日插值多项式_买菜必用的MATLAB拉格朗日插值函符号解输出
  11. 国产APP自动化测试工具AndroidRobot下载地址
  12. MySQL 58到家数据库30条军规解读
  13. 怎么不能锁门_镜子能不能对着床
  14. 递归计算二叉树的叶子节点个数
  15. 在matlab中输出怎么表示什么意思,matlab中基于帧输出是什么意思
  16. win系统的VBS脚本简易教程
  17. python基础教程怎么看_python基础教程之看一篇,学一篇,今日份的pand
  18. 我的CSDN博客规划说明
  19. nargin与varnargin
  20. 我的物联网项目(二十三) 统计数据优化

热门文章

  1. 用HTML表格标签制作基础简历
  2. SharePoint 2010 与 Business Intelligence 免费公开课
  3. 手机声音同步到另一部手机_手机照片怎么传到另一个手机?用这一招,超简单!...
  4. 数组中某个元素相同的去重_几种去除数组中重复元素的方法、数组去重
  5. Mysql连接查询分哪几种_数据库的几种连接查询
  6. 工程造价步骤_工程造价的六个步骤是什么?
  7. 荣耀8显示服务器错误,王者荣耀更新失败怎么办?王者荣耀8月23日更新出现错误代码...
  8. 视频教程-跟着王进老师学开发Python篇:基础入门案例讲解-Python
  9. python读取日志统计ip_使用python脚本实现统计日志文件中的ip访问次数
  10. Proxmark3 Easy Gui 5.0、5.13、5.2加强版介绍