一篇文章带你了解网络爬虫的概念及其工作原理

众所周知,随着计算机、互联网、物联网、云计算等网络技术的风起云涌,网络上的信息呈爆炸式增长。毋庸置疑,互联网上的信息几乎囊括了社会、文化、政治、经济、娱乐等所有话题。使用传统数据收集机制(如问卷调查法、访谈法)进行捕获和采集数据,往往会受经费和地域范围所限,而且还会因其样本容量小、信度低等因素导致收集的数据往往与客观事实有所偏颇,有着较大的局限性。

网络爬虫通过统一资源定位符URL (Uniform ResourceLocator)来查找目标网页,将用户所关注的数据内容直接返回给用户,并不需要用户以浏览网页的形式去获取信息,为用户节省了时间和精力,并提高了数据采集的准确度,使用户在海量数据中游刃有余。网络爬虫的最终目的就是从网页中获取自己所需的信息。虽然利用urllib、urllib2、re等一些爬虫基本库可以开发一个爬虫程序,获取到所需的内容,但是所有的爬虫程序都以这种方式进行编写,工作量未免太大了些,所有才有了爬虫框架。使用爬虫框架可以大大提高效率,缩短开发时间。

网络爬虫(web crawler)又称为网络蜘蛛(web spider)或网络机器人(web robot),另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或蠕虫,同时它也是“物联网”概念的核心之一。网络爬虫本质上是一段计算机程序或脚本,其按照一定的逻辑和算法规则自动地抓取和下载万维网的网页,是搜索引擎的一个重要组成部分。

网络爬虫一般是根据预先设定的一个或若干个初始网页的URL开始,然后按照一定的规则爬取网页,获取初始网页上的URL列表,之后每当抓取一个网页时,爬虫会提取该网页新的URL并放入到未爬取的队列中去,然后循环的从未爬取的队列中取出一个URL再次进行新一轮的爬取,不断的重复上述过程,直到队列中的URL抓取完毕或者达到其他的既定条件,爬虫才会结束。具体流程如下图所示。

随着互联网信息的与日俱增,利用网络爬虫工具来获取所需信息必有用武之地。使用网络爬虫来采集信息,不仅可以实现对web上信息的高效、准确、自动的获取,还利于公司或者研究人员等对采集到的数据进行后续的挖掘分析。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN博客

Python2实现简单的爬虫

有时候我们需要一些网络数据来工作、学习,比如我们做深度学习的。当做一个分类任务时,需要大量的图像数据,这个图像数据如果要人工一个个下载的,这很明显不合理的,这是...

26420
来自专栏未闻Code

Tenacity——Exception Retry 从此无比简单

Python 装饰器装饰类中的方法这篇文章,使用了装饰器来捕获代码异常。这种方式可以让代码变得更加简洁和Pythonic。

11930
来自专栏linux、Python学习

爬虫实践---一次下完所有小说:排行榜小说批量下载

模块化,函数式编程是一个非常好的习惯,坚持把每一个独立的功能都写成函数,这样会使代码简单又可复用。

19430
来自专栏未闻Code

如果你不知道做什么,那就学一门杂学吧

多年以后,面对人工智能研究员那混乱不堪的代码,我会想起第一次和S君相见的那个遥远的下午。那时的B公司,还是一个仅有6个人的小团队,Mac和显示器在桌上依次排开,...

12610
来自专栏未闻Code

彻底搞懂Scrapy的中间件(二)

在上一篇文章中介绍了下载器中间件的一些简单应用,现在再来通过案例说说如何使用下载器中间件集成Selenium、重试和处理请求异常。

20530
来自专栏未闻Code

彻底搞懂Scrapy的中间件(三)

在前面两篇文章介绍了下载器中间件的使用,这篇文章将会介绍爬虫中间件(Spider Middleware)的使用。

10720
来自专栏未闻Code

彻底搞懂Scrapy的中间件(一)

中间件是Scrapy里面的一个核心概念。使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫。

22320
来自专栏数据饕餮

Python网络爬虫实战案例之:7000本电子书下载(3)

本文是《Python开发实战案例之网络爬虫》的第三部分:7000本电子书下载网络爬虫开发实战详解。配套视频课程详见网易云课堂

11920
来自专栏数据科学与人工智能

如何从头开始构建数据科学项目

有许多关于数据科学和机器学习的在线课程将指导您完成理论,并为您提供一些代码示例和对非常干净数据的分析。

14020
来自专栏数据饕餮

网络爬虫之Windows环境Heritrix3.0配置指南

  最近在忙某个商业银行的项目,需要引入外部互联网数据作为参考,作为技术选型阶段的工作,之前已经确定了中文分词工具,下一个话题就是网络爬虫的选择,目标很明确,需...

12920

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励