当前位置:首页 > 经验 >

编程爬虫是什么意思(爬虫一般是用什么语言)

来源:原点资讯(www.yd166.com)时间:2022-11-08 16:19:18作者:YD166手机阅读>>

导读:在《》一文中,我们已经初步认识了网络爬虫,并了解了网络爬虫的应用领域。本文我们将学习网络爬虫的实现原理及其实现技术。

作者:韦玮

如需转载请联系大数据(ID:hzdashuju)

01 网络爬虫实现原理详解

不同类型的网络爬虫,其实现原理也是不同的,但这些实现原理中,会存在很多共性。在此,我们将以两种典型的网络爬虫为例(即通用网络爬虫和聚焦网络爬虫),分别为大家讲解网络爬虫的实现原理。

1. 通用网络爬虫

首先我们来看通用网络爬虫的实现原理。通用网络爬虫的实现原理及过程可以简要概括如下(见图3-1)。

编程爬虫是什么意思,爬虫一般是用什么语言(1)

▲图3-1 通用网络爬虫的实现原理及过程

  1. 获取初始的URL。初始的URL地址可以由用户人为地指定,也可以由用户指定的某个或某几个初始爬取网页决定。
  2. 根据初始的URL爬取页面并获得新的URL。获得初始的URL地址之后,首先需要爬取对应URL地址中的网页,爬取了对应的URL地址中的网页后,将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,同时将已爬取的URL地址存放到一个URL列表中,用于去重及判断爬取的进程。
  3. 将新的URL放到URL队列中。在第2步中,获取了下一个新的URL地址之后,会将新的URL地址放到URL队列中。
  4. 从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新网页中获取新URL,并重复上述的爬取过程。
  5. 满足爬虫系统设置的停止条件时,停止爬取。在编写爬虫的时候,一般会设置相应的停止条件。如果没有设置停止条件,爬虫则会一直爬取下去,一直到无法获取新的URL地址为止,若设置了停止条件,爬虫则会在停止条件满足时停止爬取。

以上就是通用网络爬虫的实现过程与基本原理,接下来,我们为大家分析聚焦网络爬虫的基本原理及其实现过程。

2. 聚焦网络爬虫

聚焦网络爬虫,由于其需要有目的地进行爬取,所以对于通用网络爬虫来说,必须要增加目标的定义和过滤机制,具体来说,此时,其执行原理和过程需要比通用网络爬虫多出三步,即目标的定义、无关链接的过滤、下一步要爬取的URL地址的选取等,如图3-2所示。

编程爬虫是什么意思,爬虫一般是用什么语言(2)

▲图3-2 聚焦网络爬虫的基本原理及其实现过程

  1. 对爬取目标的定义和描述。在聚焦网络爬虫中,我们首先要依据爬取需求定义好该聚焦网络爬虫爬取的目标,以及进行相关的描述。
  2. 获取初始的URL。
  3. 根据初始的URL爬取页面,并获得新的URL。
  4. 从新的URL中过滤掉与爬取目标无关的链接。因为聚焦网络爬虫对网页的爬取是有目的性的,所以与目标无关的网页将会被过滤掉。同时,也需要将已爬取的URL地址存放到一个URL列表中,用于去重和判断爬取的进程。
  5. 将过滤后的链接放到URL队列中。
  6. 从URL队列中,根据搜索算法,确定URL的优先级,并确定下一步要爬取的URL地址。在通用网络爬虫中,下一步爬取哪些URL地址,是不太重要的,但是在聚焦网络爬虫中,由于其具有目的性,故而下一步爬取哪些URL地址相对来说是比较重要的。对于聚焦网络爬虫来说,不同的爬取顺序,可能导致爬虫的执行效率不同,所以,我们需要依据搜索策略来确定下一步需要爬取哪些URL地址。
  7. 从下一步要爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程。
  8. 满足系统中设置的停止条件时,或无法获取新的URL地址时,停止爬行。

现在我们初步掌握了网络爬虫的实现原理以及相应的工作流程,下面来了解网络爬虫的爬行策略。

02 爬行策略

在网络爬虫爬取的过程,在待爬取的URL列表中,可能有很多URL地址,那么这些URL地址,爬虫应该先爬取哪个,后爬取哪个呢?

在通用网络爬虫中,虽然爬取的顺序并不是那么重要,但是在其他很多爬虫中,比如聚焦网络爬虫中,爬取的顺序非常重要,而爬取的顺序,一般由爬行策略决定。我们将为大家介绍一些常见的爬行策略。

爬行策略主要有深度优先爬行策略、广度优先爬行策略、大站优先策略、反链策略、其他爬行策略等。下面我们将分别进行介绍。

如图3-3所示,假设有一个网站,ABCDEFG分别为站点下的网页,图中箭头表示网页的层次结构。

编程爬虫是什么意思,爬虫一般是用什么语言(3)

▲图3-3 某网站的网页层次结构示意图

假如此时网页ABCDEFG都在爬行队列中,那么按照不同的爬行策略,其爬取的顺序是不同的。

比如,如果按照深度优先爬行策略去爬取的话,那么此时会首先爬取一个网页,然后将这个网页的下层链接依次深入爬取完再返回上一层进行爬取。

所以,若按深度优先爬行策略,图3-3中的爬行顺序可以是:A → D → E → B → C → F → G。

如果按照广度优先的爬行策略去爬取的话,那么此时首先会爬取同一层次的网页,将同一层次的网页全部爬取完后,在选择下一个层次的网页去爬行,比如,上述的网站中,如果按照广度优先的爬行策略去爬取的话,爬行顺序可以是:A→B→C→D→E→F→G。

除了以上两种爬行策略之外,我们还可以采用大站爬行策略。我们可以按对应网页所属的站点进行归类,如果某个网站的网页数量多,那么我们则将其称为大站,按照这种策略,网页数量越多的网站越大,然后,优先爬取大站中的网页URL地址。

一个网页的反向链接数,指的是该网页被其他网页指向的次数,这个次数在一定程度上代表着该网页被其他网页的推荐次数。所以,如果按反链策略去爬行的话,那么哪个网页的反链数量越多,则哪个网页将被优先爬取。

但是,在实际情况中,如果单纯按反链策略去决定一个网页的优先程度的话,那么可能会出现大量的作弊情况。比如,做一些垃圾站群,并将这些网站互相链接,如果这样的话,每个站点都将获得较高的反链,从而达到作弊的目的。

作为爬虫项目方,我们当然不希望受到这种作弊行为的干扰,所以,如果采用反向链接策略去爬取的话,一般会考虑可靠的反链数。

除了以上这些爬行策略,在实际中还有很多其他的爬行策略,比如OPIC策略、Partial PageRank策略等。

编程爬虫是什么意思,爬虫一般是用什么语言(4)

首页 123下一页

栏目热文

学爬虫技术是什么(爬虫技术干什么的)

学爬虫技术是什么(爬虫技术干什么的)

前言:网络爬虫技术顺应互联网时代的发展应运而生。目前网络爬虫的使用范围是比较广的,在不同的领域中都有使用,爬虫技术更是广...

2022-11-08 16:10:50查看全文 >>

爬虫技术学什么(爬虫技术有什么规定)

爬虫技术学什么(爬虫技术有什么规定)

在互联网时代中,我们正被数据包围,我们是网络数据生产者和使用者。日常中在互联网上许多行为产生了数据,例如淘宝、阅读记录等...

2022-11-08 16:43:45查看全文 >>

爬虫技术有什么好处(爬虫的利弊和解决方案)

爬虫技术有什么好处(爬虫的利弊和解决方案)

上游新闻记者冯盛雍北大“韦神”的个人简历只有四行字,虽然简单,但是含金量满满。然而,有网友发现他在官网预留的电子邮箱地址...

2022-11-08 16:41:24查看全文 >>

爬虫技术可以查聊天记录吗(通过手机号能爬虫什么信息)

爬虫技术可以查聊天记录吗(通过手机号能爬虫什么信息)

金磊 杨净 发自 凹非寺量子位 | 公众号 QbitAI前脚投简历,后脚就被精准裁员。一位网友最近就爆出了这样一段真实经...

2022-11-08 16:02:57查看全文 >>

爬虫技术是干啥的(爬虫技术到底指什么)

爬虫技术是干啥的(爬虫技术到底指什么)

明明只是进直播间看了眼带货,结果其他销售同类产品的商家却精准找上了门,此时请注意,你的信息可能已被非法爬取!近日,江苏省...

2022-11-08 16:38:11查看全文 >>

为什么抖音上有爬虫(抖音爬虫很难吗)

为什么抖音上有爬虫(抖音爬虫很难吗)

我是卢松松,点点上面的头像,欢迎关注我哦!今年上半年,字节跳动ceo张楠透露,抖音视频搜索月活用户已超5.5亿,,“接下...

2022-11-08 16:27:59查看全文 >>

爬虫算法什么意思(爬虫技术有什么用)

爬虫算法什么意思(爬虫技术有什么用)

一、什么是网络爬虫 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照...

2022-11-08 16:05:32查看全文 >>

爬虫零基础学习(python爬虫实例100例)

爬虫零基础学习(python爬虫实例100例)

“入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一...

2022-11-08 16:37:09查看全文 >>

网上爬虫是什么意思(网络爬虫是个啥)

网上爬虫是什么意思(网络爬虫是个啥)

在这个用数据说话的时代,数据是一件极其重要的事情,怎样才能抓取到完整以及全面的数据呢?这并不是一件容易的事情。如果想要做...

2022-11-08 16:12:10查看全文 >>

穿越火线怎么免费获取毁灭(穿越火线毁灭者怎么获得)

穿越火线怎么免费获取毁灭(穿越火线毁灭者怎么获得)

CF相信很多玩家都听过这款游戏名字,甚至都是以前的老玩家,毕竟在当年它是射击类游戏里最火的一款,还连续拿下好几次射击榜第...

2022-11-08 16:26:01查看全文 >>

文档排行