什么是网络爬虫

一、概念

网络爬虫,也被称为网页蜘蛛、网络机器人,或者更具体地在FOAF社区中,被称为网页追逐者。它是一种按照设定的规则,能够自动地抓取万维网信息的程序或脚本。这个名称的来源主要是由于其能够像蜘蛛一样在网络中“爬行”,遍历各个网页并抓取所需的信息。

从定义上来看,网络爬虫可以从广义狭义两个角度来理解。从狭义的角度看,网络爬虫是一个软件程序,它采用标准的HTTP协议,通过遍历万维网信息空间中的超链接和Web文档进行检索。而从广义的角度来说,任何能够利用HTTP协议对Web文档进行检索的程序都可以被视为网络爬虫。

网络爬虫的主要功能是在海量的互联网信息中进行爬取,抓取有效信息并存储。在当今“数据为王”的时代,数据的搜集成为了各行各业必须掌握的本领。网络爬虫技术就是爬取数据的高效程序,谁能够更快、更精准地搜集到数据,谁就能在竞争激烈的市场中站稳脚跟。

网络爬虫的应用范围非常广泛,它在不同的领域中都有使用。例如,多家新闻资讯平台会利用爬虫技术爬取别家的新闻资讯数据进行整合再利用。再如外卖平台,利用爬虫技术抓取外卖程序上的消费者点单数据,给客户优先推送某些经常消费的外卖店铺,从而提高客户粘度,并从外卖商家获取利润。

然而,在使用网络爬虫时,需要遵守Robots协议,这是网络爬虫技术这一行业内通用的规则,也称为网络爬虫协议。它是网站所有者设立的一份协议,用来提醒利用网络爬虫技术访问和搜集数据的一方,什么数据可以爬,什么数据不能爬,或者设置防抓取的屏蔽措施,用来保护数据。

二、网络爬虫分类

网络爬虫历经几十年的发展,技术变得更加多样化,并结合不同的需求衍生出类型众多的网络爬虫。网络爬虫按照系统结构和实现技术大致可以分为4种类型,分别是通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。

1.通用网络爬虫

通用网络爬虫(General Purpose Web Crawler)又称全网爬虫(Scalable Web Crawler),是指访问全互联网资源的网络爬虫。通用网络爬虫是“互联网时代”早期出现的传统网络爬虫,它是搜索引擎(如百度、谷歌、雅虎等)抓取系统的重要组成部分,主要用于将互联网中的网页下载到本地,形成一个互联网内容的镜像备份。

2.聚焦网络爬虫

聚焦网络爬虫(Focused Crawler)又称主题网络爬虫(Topical Crawler),是指有选择性地访问那些与预定主题相关网页的网络爬虫,它根据预先定义好的目标,有选择性地访问与目标主题相关的网页,获取所需要的数据。 与通用网络爬虫相比,聚焦网络爬虫只需要访问与预定主题相关的网页,这不仅减少了访问和保存的页面数量,而且提高了网页的更新速度,可见,聚焦网络爬虫在一定程度度节省了网络资源,能满足一些特定人群采集特定领域数据的需求。

3.增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler)是指对已下载的网页采取增量式更新,只抓取新产生或者已经发生变化的网页的网络爬虫。 增量式网络爬虫只会抓取新产生的或内容变化的网页,并不会重新抓取内容未发生变化的网页,这样可以有效地减少网页的下载量,减少访问时间和存储空间的耗费,但是增加了网页抓取算法的复杂度和实现难度。

4.深层网络爬虫

深层网络爬虫(Deep Web Crawler)是指抓取深层网页的网络爬虫,它要抓取的网页层次比较深,需要通过一定的附加策略才能够自动抓取,实现难度较大。

三、网络爬虫的应用场景

随着互联网信息的“爆炸”,网络爬虫渐渐为人们所熟知,并被应用到了社会生活的众多领域。作为一种自动采集网页数据的技术,很多人其实并不清楚网络爬虫具体能应用到什么场景。事实上,大多数依赖数据支撑的应用场景都离不开网络爬虫,包括搜索引擎、舆情分析与监测、聚合平台、出行类软件等。

1.搜索引擎

搜索引擎是通用网络爬虫最重要的应用场景之一,它会将网络爬虫作为最基础的部分——互联网信息的采集器,让网络爬虫自动到互联网中抓取数据。例如,谷歌、百度、必应等搜索引擎都是利用网络爬虫技术从互联网上采集海量的数据。

2.舆情分析与监测

政府或企业通过网络爬虫技术自动采集论坛评论、在线博客、新闻媒体或微博等网站中的海量数据,采用数据挖掘的相关方法(如词频统计、文本情感计算、主题识别等)发掘舆情热点,跟踪目标话题,并根据一定的标准采取相应的舆情控制与引导措施。例如,百度热点排行榜、微博热搜排行榜。

3.聚合平台

如今出现的很多聚合平台,如返利网、慢慢买等,也是网络爬虫技术的常见的应用场景,这些平台就是运用网络爬虫技术对一些电商平台上的商品信息进行采集,将所有的商品信息放到自己的平台上展示,并提供横向数据的比较,帮助用户寻找实惠的商品价格。例如,用户在慢慢买平台搜索华为智能手表后,平台上展示了很多款华为智能手表的价格分析及价格走势等信息。

4.出行类软件

出行类软件,比如飞猪、携程、去哪儿等,也是网络爬虫应用比较多的场景。这类应用运用网络爬虫技术,不断地访问交通出行的官方售票网站刷新余票,一旦发现有新的余票便会通知用户付款买票。不过,官方售票网站并不欢迎网络爬虫的这种行为,因为高频率地访问网页极易造成网站出现瘫痪的情况。

四:爬取网页数据

基于爬虫的实现原理,进入爬虫的第一阶段:爬取网页数据,即下载包含目标数据的网页爬取网页需要通过爬虫向服务器发送一个HTTP请求,然后接收服务器返回的响应内容中的整个网页源代码。
利用Python完成这个过程,既可以使用内置的urllib库,也可以使用第三方库requests。使用这两个库,在爬取网页数据时,只需要关心请求的URL格式,要传递什么参数,要设置什么样的请求头,而不需要关心它们的底层是怎样实现的。下面针对urllib和requests库的使用进行详细讲解。


1、urllib库概述


urllib 库是 Python内置的HTTP请求库,它可以看作处理URL的组件集合。urllib库包含四大模块:
(1) urllib.request:请求模块。
(2)urllib.error:异常处理模块。
(3)urllib.parse:URL解析模块。

(4) urllib.robotparser:robots.txt解析模块。


2 、快速使用 urllib 爬取网页


爬取网页其实就是通过URL获取网页信息,这段网页信息的实质就是一段附加了JavaScript和CSS的 HTML代码。如果把网页比作一个人,那么HTML就是他的骨架,JawaScript是他的肌肉,CSS 是他的衣服。由此看来,网页最重要的数据部分是存在于HTML中的。


3、 快速爬取一个网页


urllib 库的使用比较简单,下面使用urllib快速爬取一个网页,具体代码如下:

import urllib.request
# 调用 urllib.requst 库的 urlopen() 方法,并传入一个 ur1

response=urllib.request.urlopen('http://vww.baidu.com')

# 使用 read() 方法读取获取到的网页内容
html=response.read().decode('UTE-8')

# 打印网页内容
print (html)

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值