java爬去指定网页的内容_JAVA使用Gecco爬虫 抓取网页内容(示例代码)

JAVA 爬虫工具有挺多的,但是Gecco是一个挺轻量方便的工具。

先上项目结构图。

20180111000807139146.png

这是一个 JAVASE的 MAVEN 项目,要添加包依赖,其他就四个文件。log4j.properties 加上三个java类。

1、先配置log4j.properties

log4j.rootLogger =error,stdout,D,E

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern= [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

log4j.appender.D=org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File=vincent_player_debug.log

log4j.appender.D.Append= truelog4j.appender.D.Threshold=DEBUG

log4j.appender.D.layout=org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

log4j.appender.E=org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File=vincent_player_error.log

log4j.appender.E.Append= truelog4j.appender.E.Threshold=ERROR

log4j.appender.E.layout=org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

2、接下来着手写Blog.java,里面都有注释  不解释

packagecom.cwj.gecco.pojo;importcom.geccocrawler.gecco.annotation.Gecco;importcom.geccocrawler.gecco.annotation.HtmlField;importcom.geccocrawler.gecco.annotation.Request;importcom.geccocrawler.gecco.request.HttpRequest;importcom.geccocrawler.gecco.spider.SpiderBean;/***@authorcwj

* 2017年8月6日

* Blog实体类,运行主函数从这里开始解析

* matchUrl:要抓包的目标地址

* pipelines:跳转到下个pipelines*/@Gecco(matchUrl="http://www.cnblogs.com/boychen/p/7226831.html",pipelines="blogPipelines")public class Blog implementsSpiderBean{/*** 向指定URL发送GET方法的请求*/@RequestprivateHttpRequest request;/*** 抓去这个路径下所有的内容*/@HtmlField(cssPath= "body div#cnblogs_post_body")privateString content;publicHttpRequest getRequest() {returnrequest;

}public voidsetRequest(HttpRequest request) {this.request =request;

}publicString getContent() {returncontent;

}public voidsetContent(String content) {this.content =content;

}

}

3、BlogPipelines.java

packagecom.cwj.gecco.pipelines;importcom.cwj.gecco.pojo.Blog;importcom.geccocrawler.gecco.annotation.PipelineName;importcom.geccocrawler.gecco.pipeline.Pipeline;/***@authorcwj

* 2017年8月6日

* 运行完Blog.java 根据@PipelineName 来这里*/@PipelineName(value="blogPipelines")public class BlogPipelines implements Pipeline{/*** 将抓取到的内容进行处理 这里是打印在控制台*/

public voidprocess(Blog blog) {

System.out.println(blog.getContent());

}

}

4、最后便是在main中调用

packagecom.cwj.gecco.main;importcom.geccocrawler.gecco.GeccoEngine;public classMain {public static voidmain(String[] args) {

GeccoEngine.create()//工程的包路径

.classpath("com.cwj.gecco")//开始抓取的页面地址

.start("http://www.cnblogs.com/boychen/p/7226831.html")//开启几个爬虫线程

.thread(10)//单个爬虫每次抓取完一个请求后的间隔时间

.interval(5)//使用pc端userAgent

.mobile(false)//开始运行

.run();

}

}

5、抓取到内容,日志文件被我删除  有警告

20180111000807142076.png

附上源码地址  https://github.com/BeautifulMeet/Gecco

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值