java网络爬虫基础学习(一)

时间:2023-02-06 14:53:18

  刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结

  主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好。

  一、爬虫介绍

  网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分。

  传统爬虫

  获得URL -》放入队列 -》抓取网页,分析信息 -》新的URL -》放入队列 -》抓取网页,分析信息... -》满足一定条件,停止。

  聚焦爬虫

  根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。再进一步根据搜索策略从队列中选择下一步的URL,重复..直到满足一定条件停止。除此之外,被爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,以便之后的查询和减少。

  相对于通用网络爬虫,聚焦爬虫还需解决三个问题:

  1. 对抓取目标的描述或定义。
  2. 对网页或数据的分析与过滤。
  3. 对URL的搜索策略。

 网络爬虫设计的领域有很多,需要我们掌握一门基础编程语言(最好是已经具备成熟API的语言),需要了解HTTP协议、了解网络服务器、数据库、前端知识、网络安全等...

 分类: 

  按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等。

  通用网络爬虫:爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。

  聚焦网络爬虫:又称主体网络爬虫,是指选择性地爬那些与预定义好的主题相关的页面,和通用爬虫比具体上面已经介绍过了。

  增量网络爬虫:对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化页面的爬虫,它能够在一定程度上保证爬行的页面是尽可能新的页面,历史已经采集过的页面不重复采集。

  常见案例:论坛订单评论数据的采集(评论数据只采集最近几天或者最近几月的用户所发的评论)

  Deep Web爬虫:指大部分内容不能通过静态链接获取,而大部分我们需要的数据都是在网页的动态链接产生的页面,即Deep Web信息,Deep Web也是一个爬虫框架,在此暂时不深究。

 网络爬虫的爬行策略

  深度优先搜索策略、广度优先搜索策略。