关于网络爬虫技术的概述

本文概述了网络爬虫的两大类型——全网漫爬和垂直爬虫,并详细介绍了爬虫系统的构成,包括提交任务的UI接口层、任务调度层、网络爬取层、数据解析层和数据持久化层。重点讨论了爬虫技术中的难点,如乱码处理、多线程设计、参数配置和反爬策略。以Java为例,提到了http协议、Java SE、HttpClient和Jsoup等关键技术。文章还强调了良好的系统设计和不断优化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自2012年7月份开始接触爬虫相关,不经意间对爬虫有了不少心得和总结,看到周围不少的同事和同学也在这块,发现很多共性的问题和很多的误区,今天特意总结出来,希望对后来者有所帮助。

一、综述

       爬虫主要分两种,全网漫爬型和垂直型。漫爬型即像谷歌、百度之类,垂直类爬虫即像微博爬虫、淘宝类电商爬虫。它们的主要区别在于,前者为漫爬不精准爬虫,多用于舆情、概要性信息的应用,后者为精准爬虫,即对每个所爬的条目都要求准确无误,多用于行业领域应用,如微博营销、微博舆情、媒体数据精准分析挖掘等。

       全网漫爬虫,包括著名java版的nutch、Heritrix等,垂直型的开源爬虫很少,主要是因为通用不强,而且要经常维护,故开源的价并不高,像微博爬萌开源的微博爬虫是其中一个,质量并不是上佳,但作法很值得敬佩和学习。

二、系统设计

       爬虫技术,有人会认为相对比较窄,但实际做起来就会发现其实包含的内容是非常庞杂的,尤其是作为一个爬虫系统,而非仅仅是一个爬虫小模块。作为系统来讲,它主要包括提交任务的UI接口层、任务调度层、网络爬取层、数据解析层、数据持久化层,共5个主要层,再循环至任务调度层的过程。

      在五个层的设计中,其难点在于乱码解决、多线程设计、爬取的各参数的灵活配置、反爬代理等4个难点,所以一个好的爬虫系统应该做到5+3这8点才算合理,其中个人体会比较身的就是nutch,各方面比较灵活、高效、扩展性好,自nutch2.x以后新增的Gora接口,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值