`

爬虫技术

 
阅读更多
爬虫原理:
每个网页页面返回到客户端的都是 html,你需要的内容就在这html里面,这个html你可以用一个字符串去保存到java变量里,你要做的工作就是截取字符串相应位置的内容并保存起来
,你给的这个网站每个商品的网页有个特殊的地方



爬虫分为两类:
聚集爬虫:
聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

通用爬虫:
 网络爬虫的组成
  在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责
给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标
签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库
,并对其建立索引。

控制器:
  控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。
  
解析器:
  解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。
  
资源库:
  主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、Sql Server等。



概览web爬虫
web爬虫主要功能是从web中发现,下载以及存储内容。广泛应用于各种搜索引擎中。
一个典型的web爬虫主要由以下的部分组成:
  • 能被爬虫识别的URL库。
  • 文档下载模块,主要用于从web中下载内容。
  • 文档解析模块,用于解析下载文档中的内容,如解析HTML,PDF,Word等等。这个模块还要提取网页中的URL和一些对于索引有用的数据。
  • 存储文档的元数据以及内容的库。
  • 规范化URL模块,把URL转成标准的格式。
  • URL过滤器,爬虫可以过滤掉不需要的URL。


设计与实现上述模块,主要取决于你的爬虫到底要爬取什么以及要抓取的范围。最简单的例子是从一个已知的站点抓取一些网页,这个爬虫代码用一页纸
就可以写完。互联网应用中,可能会碰到这种十分简单的需求,但是如果要实现一个爬取大量文档的爬虫,就不是那么简单了。一般来说这个爬虫就是N个应用组
成,并且难点是基于分布式的。

爬虫的两个阶段
一个典型的爬虫主要有如下两个阶段
  1. URL库初始化然后开始爬取。
  2. 爬虫读取没有访问过的URL,来确定它的工作范围。


对于要抓取的URL,要进行如下的不重
  1. 获取URL的内容
  2. 解析内容,获取URL以及所需的数据。
  3. 存储有价值的数据。
  4. 规范化新抓取的URL。
  5. 过滤掉不需要爬去的URL。
  6. 把要抓取的URL更新到URL库中。
  7. 重复步骤2,直到抓取的网页深度完毕为止。


从广度进行分类的话,爬虫有两类。通用型和集中型。通用型是采集所有能解析的文档。它们主要通过URL过滤技术来实现这一过程。而集中型爬虫主要爬取特定内容的文档,如爬取sina博客,格式为固定内容也是我们感兴趣的。

幸运的是,有开源的爬虫可以使用
在java中,nutch和heritrix都提供了爬虫的实现。Nutch是apache lucene的子项目,地址是http://lucene.apache.org/nutch/
。这个项目非常稳定,并且文档丰富。Nutch把多个网页存储在一个文件中。对于大的爬虫来说,这么降低I/O读写,性能更加优秀。

Heritrix是互联网存档的web爬虫。项目地址为http://crawler.archive.org/
。Heritrix专注于大型爬虫的实现。许可证为LGPL。

另外提一下,还有一个项目值得关注,那就是apache tika。项目地址为http://tika.apache.org/
。tika使用解析器从文档中发现以及提取元数据和文本内容。


Google:《Java开源Web爬虫分类列表》
(1)
ItSucks是一个java web spider(web机器人,爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个swing GUI操作界面。下载地址:http://itsucks.sourceforge.net/

(2)
WebSPHINX
WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。 http://www.cs.cmu.edu/~rcm/websphinx/.

(3)
JSpider
JSpider:是一个完全可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。http://j-spider.sourceforge.net/

(4)
Arale
Arale主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。Arale能够下载整个web站点或来自web站点的某些资源。Arale还能够把动态页面映射成静态页面。 http://web.tiscali.it/_flat/arale.jsp.html

(5)
Web-Harvest
Web-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。 http://web-harvest.sourceforge.net/
分享到:
评论
2 楼 春天好 2016-07-23  
博主写的很好,赞一个,多谢分享 *(^-^*)
分享一个免费好用的云端爬虫开发平台
http://www.shenjianshou.cn/
1 楼 mengfei86 2015-03-18  

相关推荐

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pdf《Python网络爬虫技术案例教程》PPT课件(共10...

    基于Python的网络爬虫与反爬虫技术研究.pdf

    同时,通过对实验室内部网站的测试实现了绕过反爬虫技术,并对网络爬虫及反爬虫技术进行了理论说明和发展展望。 网络爬虫技术不仅涉及到网页数据的抓取,还需要进行数据清洗和去重。在去重策略中,一个简单有效的...

    Python网络爬虫技术_习题答案.rar

    Python网络爬虫技术是当前IT领域中非常热门的一个分支,尤其在大数据分析和人工智能应用中起着关键作用。本资源“Python网络爬虫技术_习题答案.rar”看似是一个教学资料,包含了一些图像文件和章节内容,我们可以从...

    大数据时代的反爬虫技术_陈利婷

    在当前的大数据时代中,网络爬虫技术的广泛应用带来了丰富的数据资源,但同时也伴随着诸多问题,特别是对网站的无序抓取对服务器造成的过大负担以及数据隐私问题。因此,研究和开发有效的反爬虫技术显得尤为迫切。...

    Python网络爬虫技术-教学大纲.pdf

    《Python网络爬虫技术》教学大纲详细解析 Python网络爬虫技术是一门针对大数据技术类专业的必修课程,旨在培养学生利用Python语言进行网络数据抓取的能力。课程总学时为32学时,包括14学时的理论教学和18学时的实验...

    基于Python的网络爬虫技术研究

    根据给出的文件内容,下面详细说明关于基于Python的网络爬虫技术研究的相关知识点。 ### 1. 网络爬虫系统需求的分析和设计 在研究网络爬虫技术时,首先需要对爬虫系统进行需求分析和设计。根据文件内容描述,一个...

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pptx

    爬取App和PC客户端数据 《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据全文共34页,当前为第1页。 本章导读 7 第 章 随着Web端的反爬虫方式越来越多,JavaScript调用越来越复杂,爬虫...

    基于网络爬虫技术的网络新闻分析.zip

    《基于网络爬虫技术的网络新闻分析》是一个涵盖了多种信息技术的综合应用,主要涉及网络爬虫、中文分词、中文相似度判定、数据结构化存储和数据可视化等关键环节。以下将详细介绍这些知识点: 1. **网络爬虫**:...

    基于网络爬虫技术的大数据采集系统设计.pdf

    网络爬虫技术作为一种高效的数据采集工具,近年来被广泛应用于大数据采集系统的设计中。本文将介绍基于网络爬虫技术的大数据采集系统的设计方法,并探讨其在提高数据采集速度方面的优势。 首先,我们来看网络爬虫...

    《网络爬虫技术与应用》课程教学大纲.pdf

    《网络爬虫技术与应用》课程教学大纲.pdf《网络爬虫技术与应用》课程教学大纲.pdf《网络爬虫技术与应用》课程教学大纲.pdf《网络爬虫技术与应用》课程教学大纲.pdf《网络爬虫技术与应用》课程教学大纲.pdf《网络爬虫...

    python基于爬虫技术的海量电影数据分析源码.zip

    python基于爬虫技术的海量电影数据分析源码。架构 本系统主要分为四个部分,分别为后端爬虫抓取、数据处理分析可视化、GUI界面展示、启动运行,分别对应getData.py、pyec.py、GUI.py、main.py四个文件。 并且包含...

    Python爬虫技术的网页数据抓取与分析.pdf

    "Python爬虫技术的网页数据抓取与分析" 在信息化时代,互联网信息量呈现爆发式的增长,如何在诸多复杂的信息中简单快捷的寻找到有效信息,网络爬虫的诞生能够有效的解决此类问题,改善了信息检索的现状。本文通过...

    Python网络爬虫技术 完整教案.docx

    ### Python网络爬虫技术知识点详解 #### 一、Python网络爬虫技术概览 ##### 1.1 网络爬虫概念与原理 - **定义**:网络爬虫(Web Crawler),也称为网页蜘蛛或自动索引器,是一种按照一定的规则自动地抓取互联网...

    基于大数据环境下Python的爬虫技术的应用.pdf

    在网络数据抓取与处理方面,Python作为一种编程语言,已经成为开发网络爬虫技术的首选。在网络爬虫技术的应用方面,黔南民族职业技术学院的研究人员以学院近十年的网页数据抓取为例,展示了如何应用Python爬虫技术...

    爬虫技术的代码

    在IT领域,爬虫技术是数据获取的重要手段,特别是在大数据分析、搜索引擎优化和市场研究等方面。爬虫,也称为网络爬虫或蜘蛛,是一种自动抓取网页内容的程序。它通过模拟人类用户的行为,遵循HTML链接,遍历互联网上...

    爬虫技术PPT课件.ppt

    爬虫技术PPT,爬虫技术,爬虫技术课件

    Python网络爬虫技术基础知识探讨.pdf

    Python网络爬虫技术基础知识探讨 随着计算机网络信息技术的飞速发展,人们对网络内容的需求日益增长,网络爬虫技术作为自动提取网页信息的一种程序,逐渐成为了研究热点。Python作为一种广泛应用于数据处理领域的...

Global site tag (gtag.js) - Google Analytics