1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java爬去指定网页的内容_JAVA使用Gecco爬虫 抓取网页内容(示例代码)

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

时间:2024-04-30 21:37:23

相关推荐

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

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

先上项目结构图。

这是一个 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

* 8月6日

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

* matchUrl:要抓包的目标地址

* pipelines:跳转到下个pipelines*/@Gecco(matchUrl="/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

* 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("/boychen/p/7226831.html")//开启几个爬虫线程

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

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

.mobile(false)//开始运行

.run();

}

}

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

附上源码地址 /BeautifulMeet/Gecco

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。