java爬虫抓取网页数据(java网络爬虫基础入门的总结及解决方法)
优采云 发布时间: 2022-01-02 09:01java爬虫抓取网页数据(java网络爬虫基础入门的总结及解决方法)
刚开始接触java爬虫,这里总结一下网上的一些理论知识
主要参考文章:Gitchat的java网络爬虫基础。好像是收费的,也不贵。感觉内容对新手很友好。
一、爬虫介绍
网络爬虫是一种自动提取网页的程序。它从万维网上下载网页供搜索引擎使用,是搜索引擎的重要组成部分。
传统爬虫:
获取URL-》放入队列-》爬取网页,分析信息-》新建URL-》放入队列-》爬取网页,分析信息... -》满足一定条件,停止。
关注爬虫:
根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接,放入URL队列等待被抓取。然后根据搜索策略从队列中选择下一个URL,重复...直到满足一定条件停止。另外,爬虫爬取的网页会被系统存储起来进行一定的分析、过滤和索引,以便后续的查询和归约。
相比一般的网络爬虫,专注爬虫还需要解决三个问题:
抓取目标的描述或定义。网页或数据的分析和过滤。网址的搜索策略。
网络爬虫设计有很多领域。我们需要掌握一门基本的编程语言(最好是已经有成熟API的语言),了解HTTP协议,了解Web服务器、数据库、前端知识、网络安全等......
分类:
根据系统结构和实现技术,大致可以分为以下几种:通用网络爬虫、聚焦网络爬虫、增量网络爬虫、深度网络爬虫等
万能网络爬虫:爬取对象从一些*敏*感*词*网址扩展到整个网络,主要针对门户网站搜索引擎和大型网络服务商采集数据。
专注于网络爬虫:也称为主网络爬虫,它是指有选择地抓取与预定义主题相关的页面,比上面已经介绍的一般爬虫更具体。
Incremental web crawler:一种对下载的网页进行增量更新并且只抓取新生成或更改的页面的爬虫。它可以确保抓取的页面尽可能新。历史已经采集过去的页面不再重复采集。
常见情况:论坛订单评论数据的采集(评论数据仅为用户最近几天或几个月的采集评论)
Deep Web crawler:指的是大部分内容是无法通过静态链接获取的,而我们需要的大部分数据是网页动态链接生成的页面,即Deep Web信息。 Deep Web 也是一个爬虫框架。暂时不要深入研究。
网络爬虫的爬取策略
深度优先搜索策略,广度优先搜索策略。