手把手Java爬虫教学 - 1. 了解爬虫

一、什么是爬虫

先来看一下百度百科,了解一下爬虫~

手把手Java爬虫教学 - 1. 了解爬虫_第1张图片

我们通过爬虫主要的目的就是爬取数据,好比 A 网站、B 网站有我们所需要的内容,但是这两个网站并没有给我们提供接口,那我们怎么能拿到上面的数据呢?

这时候我们就可以通过爬虫对相关页面进行爬取,将我们需要的数据爬取出来。

二、爬虫的作用

爬虫除去上面那种比较简单的采集数据之外,还有很多作用,来看一下:

1. 自动化测试(Selenium)

2. 漏洞扫描

当然,我用爬虫就是为了做数据采集。

三、爬虫分类

1. 通用网络爬虫

通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。由于商业原因 ,它们的技术细节很少公布出来。通用网络爬虫的结构大致可以分为页面爬行模块 、页面分析模块、链接过滤模块、页面数据库、URL 队列初始URL集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。常用的爬行策略有:深度优先策略、广度优先策略。

2. 聚焦网络爬虫

聚焦网络爬虫(Focused Crawler),又称主题 网络爬虫(Topical Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面 也由于数量少而更新快,还可以很好地满足一些特定 人群对特定领域信息的需求 。聚焦网络爬虫和通用网络爬虫相比,增加了链 接评价模块以及内容评价模块。聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性不同,由此导致链接的访问顺序也不同。主要的爬行策略包括:基于内容评价的爬行策略、基于链接结构评价的爬行策略 、基于增强学习的爬行策略、基于语境图的爬行策略。

3. 增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬 行的页面是尽可能新的页面。增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[包含爬行模块、排序模块、 更新模块、本地页面集、待爬行 URL 集以及本地页面URL 集。

4. Deep Web 爬虫

Web 页面按存在方式可以分为表层网页(Surface Web和深层网页(Deep Web,也 称 Invisible Web Pages 或 Hidden Web)。表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词 才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。2000 年Bright Planet 指出:Deep Web 中可 访问信息容量是 Surface Web 的几百倍,是互联网上最大、发展最快的新型信息资源 。Deep Web 爬虫体系结构包含六个基本功能模块 (爬行控制器、解析器、表单分析器、表单处理器、响应 分析器、LVS 控制器)和两个爬虫内部数据结构(URL 列表、 LVS 表)

四、爬虫危害

爬虫虽好,但是爬虫也是有危害的。这里我给大家分享一些站点文章,大家自己去看看~

使用爬虫技术入侵平台或数据库,构成危害计算机信息系统安全罪

干货|玩“爬虫”可能触犯的三宗罪

60 天内 300 亿爬虫请求,60 亿登录请求,这届黑客不好对付!|Akamai 2020 网络安全趋势总结

总的一句话:我们学习爬虫是为了学习一些技术,用这些技术做一些有益的事情(好比利用爬虫去做自动化测试),但千万不要通过技术去做一些违法犯罪的事情,技术是无辜的,不要因为为了牟利而滥用它们。


这一讲就讲到这里,有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com

你可能感兴趣的:(Java爬虫,爬虫,数据挖掘,java爬虫,htmlunit)