`
zhanggl23456
  • 浏览: 596 次
社区版块
存档分类
最新评论

java -爬虫

 
阅读更多
本文转载:http://syc001.iteye.com/blog/1028001
爬虫原理:
每个网页页面返回到客户端的都是 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个应用组
成,并且难点是基于分布式的。

爬虫的两个阶段
一个典型的爬虫主要有如下两个阶段

    URL库初始化然后开始爬取。
    爬虫读取没有访问过的URL,来确定它的工作范围。



对于要抓取的URL,要进行如下的不重

    获取URL的内容
    解析内容,获取URL以及所需的数据。
    存储有价值的数据。
    规范化新抓取的URL。
    过滤掉不需要爬去的URL。
    把要抓取的URL更新到URL库中。
    重复步骤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/
分享到:
评论

相关推荐

    源码-java网络爬虫源码

    源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 ...

    基于java的开发源码-爬虫框架WebMagic.zip

    基于java的开发源码-爬虫框架WebMagic.zip 基于java的开发源码-爬虫框架WebMagic.zip 基于java的开发源码-爬虫框架WebMagic.zip 基于java的开发源码-爬虫框架WebMagic.zip 基于java的开发源码-爬虫框架WebMagic.zip ...

    基于java的开发源码-Java网络爬虫(蜘蛛)源码.zip

    基于java的开发源码-Java网络爬虫(蜘蛛)源码.zip 基于java的开发源码-Java网络爬虫(蜘蛛)源码.zip 基于java的开发源码-Java网络爬虫(蜘蛛)源码.zip 基于java的开发源码-Java网络爬虫(蜘蛛)源码.zip 基于java的开发...

    java-网络爬虫.zip

    Java网络爬虫是一种用于自动化网页抓取的程序,它能够按照特定规则遍历互联网上的页面,提取所需数据。本项目提供了用Java实现的网络爬虫示例,特别适合初学者学习。内置的MyEclipse工程使得在开发环境中直接运行和...

    java代码-java爬虫源代码

    java代码-java爬虫源代码 ——学习参考资料:仅用于个人学习使用!

    使用wx-java-miniapp-spring-boot-starter开发的微信小程序演示demo.zip

    反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等...

    java-crawler-master_java爬虫_爬虫雪球_爬虫_股票_

    Java爬虫技术是编程领域中用于自动化收集网络信息的一种手段,尤其在数据分析、市场研究、信息监控等领域有广泛应用。在这个“java-crawler-master”项目中,开发者构建了一个专门针对雪球网的爬虫,雪球网是一个...

    Java-全国招标网站爬虫.zip

    反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等...

    JAVA_采集-爬虫抓取原代码

    1. **Java爬虫基础**:Java爬虫的核心是利用HTTP或HTTPS协议与服务器进行交互,通过发送GET或POST请求获取网页内容。Java的HttpURLConnection或者Apache HttpClient库可以实现这一功能。此外,Jsoup库则用于解析HTML...

    Java-Web-crawler-.zip_JAVA web 爬虫_crawler_java web crawler_java

    Java爬虫需要了解这些策略并学习如何规避,如更换User-Agent、设置代理IP、使用模拟登录等。 9. **异常处理与日志记录**:良好的错误处理和日志记录能确保爬虫在遇到问题时不会轻易崩溃,同时便于调试和监控。 10....

    Java-Web-crawler-spider.rar_JAVA web 爬虫_Java spider_crawler_spid

    Java Web 爬虫,又称为Java Spider或Crawler,是一种自动抓取互联网信息的程序。在Java领域,实现Web爬虫技术可以帮助开发者获取大量网页数据,进行数据分析、搜索引擎优化、市场研究等多种用途。本资源"Java-Web-...

    java-Jsoup爬虫完整代码

    java爬虫完整代码,爬取某东和某电影平台,可以举一反三爬取想要的资源有用信息;利用jsoup跨域请求url地址,利用jQuery选择器选取页面元素,获取想要的信息标签中的内容,转为java对象保存到数据库或者缓存.

    JAVA实战项目源码-计算机毕业设计java专业-java-源代码-搜索链接Java网络爬虫源码-zhizhu

    项目的核心部分是一个Java网络爬虫源码,它实现了网页数据的抓取和处理,可以用来搜索链接,这在数据分析、信息提取等领域具有广泛应用。下面将详细解析这个项目中的关键知识点。 1. **Java编程语言**:Java是一种...

    Java毕业课程设计-[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.zip

    Java-JSP计算机毕业设计课程设计项目源码 Java-JSP计算机毕业设计课程设计项目源码 Java-JSP计算机毕业设计课程设计项目源码 Java-JSP计算机毕业设计课程设计项目源码 Java-JSP计算机毕业设计课程设计项目源码 Java-...

    JAVA网络爬虫

    Java网络爬虫目录------------01.爬虫的介绍------------02.HttpClient------------03.Jsoup解析------------------------04.爬虫案例------------05.WebMagic------------06.案例实现------------------------07....

    Java+ssm篮球网站系统的设计与实现-爬虫

    Java+ssm篮球网站系统的设计与实现-爬虫+适用于毕设,可用于毕设参考和练习,也可用于其它。 项目资源适用于大三、大四的同学,可用于毕设参考和练习,也可用于商用。 软件开发环境及开发工具: Java——涉及技术:...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu搜索链接Java网络爬虫(蜘蛛)源码-zhizhu搜索链接Java

    [搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu[搜索...

    Java爬虫实例完整源码

    Java爬虫是一个强大的工具,用于自动化地从互联网上获取数据,尤其在大数据分析、网站监控和内容抓取等领域中有着广泛的应用。在这个Java爬虫实例中,我们将深入探讨其核心概念和技术,帮助你理解如何使用Java来编写...

    招标信息爬虫Java+html

    标题中的“招标信息爬虫Java+html”表明我们要讨论的是一个使用Java编程语言实现的网络爬虫,其目标是抓取网页上的招标信息。招标信息通常在网上公布,以供潜在的供应商参与竞标,这些信息可能包括项目名称、招标...

    java爬虫教程及工具应用

    ### Java爬虫教程及工具应用 #### 一、Java爬虫概述 在互联网时代,数据成为了一种重要的资源。爬虫技术就是一种自动化获取网络数据的有效手段。Java作为一种广泛使用的编程语言,在爬虫开发领域也占据着重要的...

Global site tag (gtag.js) - Google Analytics