java爬虫抓取网页数据(java爬虫的步骤和分类策略(一)策略)
优采云 发布时间: 2021-12-17 13:08java爬虫抓取网页数据(java爬虫的步骤和分类策略(一)策略)
一、java爬虫的主要步骤是:
非结构化数据-->数据采集-->数据清洗-->结构化数据-->采集存储
1.结构化数据:一般是指存储在数据库中的数据,具有一定的逻辑和物理结构
2.非结构化数据:与结构化数据相比,非结构化数据是不方便用数据库的二维逻辑来表达的数据,如音频、视频、网页数据(html、xml)等。
3.数据采集
(1)Data采集遵循一个protocol-robots协议,全称是“网络爬虫排除标准”,他会告诉你哪些页面可以爬,哪些页面不能爬。他是基于on Robots.txt以文本形式存放在网站的根目录下,如果有这个文件,会按照其允许的内容进行爬取,如果没有,则默认可以爬取。即使有这个文件,你也可以不服从,但是他们已经给了这个文件作为约束。
(2)文件怎么写:
User-agent: * * 是一个通配符,表示所有类型的搜索引擎都可用。
Diasllow:/admin/ 表示禁止爬取admin目录的内容
不允许: *?* 意思是禁止爬行收录?'S页面
sitemap:sitemap.xml 指的是sitemap 指定的固定网站 地图页面。这样做的好处是站长不需要去各个搜索引擎的站长工具或类似的站长部件提交自己的站点地图文件。搜索引擎的蜘蛛会自己爬取robots.txt文件,读取sitemap文件,然后爬取其中的链接。
4.数据清洗
数据清洗是一个重新检查和验证的过程,目的是去除重复信息,纠正错误和错误,而不是提供数据一致性。
5.采集器的分类
(1)批量数据采集器
(2)增量数据采集器
(3)垂直数据采集器
因为他不怎么讲emmmm,你可以自己百度。
二、 爬虫策略
(1) 深度优先策略:从起始页开始,按一个链接进入,处理完这个,回到下一个。
(2)宽度优先策略:抓取实际页面中的所有链接,然后选择一个链接继续抓取该链接的所有链接内容。
(3) 反向链接数策略:反向链接数是指其他网页链接到某个网页的数量,表示其他网页推荐的程度,作为先爬取的原因
(4) 不完整的PageRank策略:使用PageRank策略参考:根据一定的算法分析(百度...),计算每个页面的PageRank值作为爬取的依据。
(5)大站优先策略:根据网站的分类,需要下载的页面多的网站优先被抓取。
三、互联网采集进程
采集入口->获取URL队列->URL去重->网页下载->数据分析->数据解压->去重->数据存储
(1)URL重复数据删除:存储在内存中或者nosql缓存服务器中进行重复数据删除,常见的有:Bloom filter,redis……这些家伙自己百度一下,我什么也做不了。
(2)网页下载:有两种情况,一种是下载存储,一种是下载不存储。存储的常见存储方式是:hadoop分布式存储。
(3)重复数据删除:判断采集数据是否存在于数据库中,进行重复数据删除。一般情况下,重复数据删除使用simhash算法处理文本类型的数据。
(4)数据存储:
分布式nosql数据库(Mongodb/hbase等)
关系分布式数据库(mysql/oracle等)
索引存储(Elasticsearch/solr 等)
① Nosql数据库:非关系型数据库,分为键值对数据库、列数据库,如:mongodb、hbase、Redis、sqllist等。
②关系型数据库:以行列形式存储
③索引存储:存储在文档和字段中,一个文档可以收录多个字段,如:lucene、Elasticsearch、solr等。
④ Simhash算法:是文本相似度的向量角余弦。主要思想是将词在文章中出现的频率构成一个向量,然后计算文章的两个对应向量的向量角。
各位兄弟姐妹们,我是大二的,我只学了一个星期,所以我会有很多不明白的地方和错误。,请体谅。我只是想记录一下我的学习内容。