java爬虫原理及策略

一、java爬虫的步骤主要是:
非结构化数据–>数据采集–>数据清洗–>结构化数据–>采集存储
1.结构化数据:一般指的是在数据库中存储的数据,有着一定的逻辑与物理结构
2.非结构化数据:相对于结构化数据,非结构化数据是不方便使用数据库二维逻辑来表现的数据,例如:音频,视频,web数据(html,xml)等。
3.数据采集
(1)数据采集的时候遵循一个协议–robots协议,全称为“网络爬虫排除标准”,他会告诉你哪些页面可以抓取,哪些页面不可以抓取。他是以文本的形式Robots.txt存放在网站的根目录下,如果有该文件,则按照其允许内容抓取,如果没有,则默认全都可以抓取。即使有这个文件,你也可以不遵守,但是他们给出了这个文件,还是要作为一个约束的。
(2)文件的写法:
User-agent:* *是一个通配符,表示所有的搜索引擎种类都可以。
Diasllow:/admin/ 表示禁止爬去admin目录下的内容
Disallow:*?* 表示禁止爬去包含?的网页
sittemap:sitemap.xml 指通过sitemap指定的固定的网站地图页面。好处是,站长可以不用到每个搜索引擎的站长工具或者相似的站长部分去提交自己的sitemap文件,搜索引擎的蜘蛛会自己抓取robots.txt文件,去读sitemap文件,接着抓取其中的链接。
4.数据清洗
数据清洗是对进行重新审查和校验的过程,目的在于删除重复的信息,纠正错误错误,比提供数据一致性。
5.采集器的分类
(1)批量型数据采集器
(2)增量型数据采集器
(3)垂直型数据采集器
emmmm这个因为他讲的也不多,所以你们可以自行百度。
二、爬虫策略
(1)深度优先策略:从起始页开始,按着一个链接进入,处理完这一条后,再回来进行 下一条。
(2)宽度优先策略:将其实页面中的所有链接进行抓取,然后选择一个链接,继续抓取此链接的所有链接内容。
(3)反向链接数策略:反向链接数是指一个网页被其他网页链接到的数量,表示受到其他网页的推荐程度,以此作为优先爬去的理由
(4)非完全PageRank策略:借鉴了PageRank策略:按照一定的算法分析(自行百度吧…),计算出每个页面的PageRank值,作为爬取依据。
(5)大站优先策略:根据所属网站分类,对于待下载页面多的网站,进行优先爬取。
三、互联网采集的流程
采集入口–>获取URL队列–>URL去重–>网页下载–>数据解析–>数据去躁–>数据去重–>数据存储
(1)URL去重:存储于内存或nosql缓存服务器中进行去重,常见的一般为:布隆过滤器,redis…这些各位大哥也自行百度吧,我也无能为力呀
(2)网页下载:两种情况,一种是下载并进行存储,一种是下载不存储。存储常见的存储方式是:hadoop分布式存储。
(3)数据去重:判断采集数据在数据库中是否存在,进行数据去重。通常数据去重针对于文本类型的数据采用simhash算法。
(4)数据存储:
分布式nosql数据库(Mongodb/hbase等)
关系型分布式数据库(mysql/oracle等)
索引存储(Elasticsearch/solr等)
①nosql数据库:非关系型数据库,分为键值对数据库,列式数据库,如:mongodb、hbase、Redis、sqllist等
②关系型数据库:以行列形式存储
③索引存储:以document和field进行存储,一个document可包含多个field,如:lucene、Elasticsearch、solr等
④simhash算法:是文本相似度的向量夹角余弦,主要思想是文章中出现的词频构成一个向量,然后计算两篇文章对应向量的向量夹角。

各位大哥大姐,我是一名大二学生,并且学这个才一个星期,所以我会有很多不理解的以及错误的地方,所以不能够讲的太细,让人理解,还有一点生搬硬套的感觉,请多多体谅。我只是想记录一下我的学习内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值