java爬虫Gecco工具抓取新闻实例_java

最近看到Gecoo爬虫工具,感觉比较简单好用,所有写个DEMO测试一下,抓取网站
http://zj.zjol.com.cn/home.html,主要抓取新闻的标题和发布时间做为抓取测试对象。抓取HTML节点通过像Jquery选择器一样选择节点,非常方便,Gecco代码主要利用注解实现来实现URL匹配,看起来比较简洁美观。

添加Maven依赖

<dependency>
   <groupId>com.geccocrawler</groupId>
   <artifactId>gecco</artifactId>
   <version>1.0.8</version>
</dependency>

编写抓取列表页面

@Gecco(matchUrl = "http://zj.zjol.com.cn/home.html?pageIndex={pageIndex}&pageSize={pageSize}",pipelines = "zJNewsListPipelines")
public class ZJNewsGeccoList implements HtmlBean {
  @Request
  private HttpRequest request;
  @RequestParameter
  private int pageIndex;
  @RequestParameter
  private int pageSize;
  @HtmlField(cssPath = "#content > div > div > div.con_index > div.r.main_mod > div > ul > li > dl > dt > a")
  private List<HrefBean> newList;
}
@PipelineName("zJNewsListPipelines")
public class ZJNewsListPipelines implements Pipeline<ZJNewsGeccoList> {
  public void process(ZJNewsGeccoList zjNewsGeccoList) {
    HttpRequest request=zjNewsGeccoList.getRequest();
    for (HrefBean bean:zjNewsGeccoList.getNewList()){
      //进入祥情页面抓取
    SchedulerContext.into(request.subRequest("http://zj.zjol.com.cn"+bean.getUrl()));
    }
    int page=zjNewsGeccoList.getPageIndex()+1;
    String nextUrl = "http://zj.zjol.com.cn/home.html?pageIndex="+page+"&pageSize=100";
    //抓取下一页
    SchedulerContext.into(request.subRequest(nextUrl));
  }
}

编写抓取祥情页面

@Gecco(matchUrl = "http://zj.zjol.com.cn/news/[code].html" ,pipelines = "zjNewsDetailPipeline")
public class ZJNewsDetail implements HtmlBean {

  @Text
  @HtmlField(cssPath = "#headline")
  private String title ;

  @Text
  @HtmlField(cssPath = "#content > div > div.news_con > div.news-content > div:nth-child(1) > div > p.go-left.post-time.c-gray")
  private String createTime;
}
@PipelineName("zjNewsDetailPipeline")
public class ZJNewsDetailPipeline implements Pipeline<ZJNewsDetail> {
  public void process(ZJNewsDetail zjNewsDetail) {
    System.out.println(zjNewsDetail.getTitle()+" "+zjNewsDetail.getCreateTime());
  }
}

启动主函数

public class Main {
  public static void main(String [] rags){
    GeccoEngine.create()
        //工程的包路径
        .classpath("com.zhaochao.gecco.zj")
        //开始抓取的页面地址
        .start("http://zj.zjol.com.cn/home.html?pageIndex=1&pageSize=100")
        //开启几个爬虫线程
        .thread(10)
        //单个爬虫每次抓取完一个请求后的间隔时间
        .interval(10)
        //使用pc端userAgent
        .mobile(false)
        //开始运行
        .run();
  }
}

抓取结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java爬虫gecco
java爬虫抓取网页数据、java爬虫抓取网页图片、java实现爬虫抓取数据、java网络爬虫抓取新闻、java抓取ajax页面爬虫,以便于您获取更多的相关知识。

时间: 2025-01-02 07:34:04

java爬虫Gecco工具抓取新闻实例_java的相关文章

Java爬虫,信息抓取的实现(转)

  转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据. 技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了:   [java] view plaincopyprint? Docume

网络爬虫-用Java来抓取网页实例中HttpClient类的问题

问题描述 用Java来抓取网页实例中HttpClient类的问题 报这么一大堆错误我也是受不了了...... 主要的问题应该是HttpClient类这个东西,在网上查了这个类是httpclient-2.x.jar包的产物,我导入的是httpclient-4.2.2.jar和httpcore-4.2.2.jar包,而这两个新的工具包并不包含HttpClient类,查阅了Java API帮助文档后,自己并没有找到HttpClient类的替代类,而是一堆接口和抽象类,由于是刚开始写这个,所以有点懵.

java在网页上面抓取邮件地址的方法_java

本文实例讲述了java在网页上面抓取邮件地址的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.net.URL;  import java.util.regex.Matcher;  import java.util.regex.Pattern;    public class h1  {     public stati

各位高手们,我想抓取新闻信息到数据库中,求指教

问题描述 各位高手们,我想抓取新闻信息到数据库中,求指教 各位高手们,我想抓取新闻信息到数据库中,求指教,麻烦加我QQ交流一下 解决方案 最好是能用asp能写出来 解决方案二: 可以跟你说说我的思路,后边你可以自己完成: 1.先获取新闻页面的html 代码 2. 通过正则表达式 获取你想要的内容 解决方案三: 百度火车头采集,很好用的采集软件 自己写要分析新闻页面内容,前后截取了,asp下载网页DEMO:asp xmlHttp用法举例 解决方案四: js等抓去html页面内容. 分析DOM类容

ajax-请问关于java 通过http client抓取网页信息返回:请开启JavaScript并刷新该页

问题描述 请问关于java 通过http client抓取网页信息返回:请开启JavaScript并刷新该页 初学httpClient,想去抓取某个网页查询出来的结果信息,通过浏览器监控发现response出来的信息和java控制台打印出来的不一样. package com.test; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import

使用Robots.txt引导百度爬虫合理分配抓取资源

我所在的网站算是一个大型网站,百度收录3000万,每天百度爬虫抓取总次数在500w次左右,单页的百度收录率 80%,看起来已经是一个相当不错的数据,但分析一下详细的日志文件,还是可以发现一些问题, 1.大型网站的列表页为了http://www.aliyun.com/zixun/aggregation/17453.html">方便用户查找所需信息,通常会设置多重的筛选条件(Facet Navigation),但爬虫并没有智能到可以自主判断哪些条件可以组合,哪些条件组合起来没有意义,只要在代码

有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取

本文讲的是有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取,[编者的话]Prerender 服务能够为网络爬虫提供预先渲染的动态页面内容,解决了用 JavaScript 框架构建的 Web 站点不支持爬虫抓取的问题.本文详细描述了一种解决方案,尤其是提供了集成 Prerender 服务的 Docker 容器镜像. 如果你正在使用 AngularJS 构建一个面向大众消费者的应用,你肯定希望用户能把它分享到社交媒体上.对于特定的应用而言,丰富的

网络爬虫-Jsoup 如何抓取GOOGLE网页数据

问题描述 Jsoup 如何抓取GOOGLE网页数据 网络爬虫新手,以前学过JAVA,所以想用JAVA来做一些数据抓取工作 在网上找的 Jsoup的JAR,试了一下感觉比较容易上手,所以想抓取GOOGLE数据 代码也是网上找的, 但是出现 timeOut,我觉得可能是GOOGLE被屏蔽的问题,我使用Ishadowsock翻墙平时,但是打开以后运货还是timeOut. 不知道各位大神能不能支支招,另外想问一下GOOGLE数据抓取有没有更好一些的开源工具,谢谢万分! Set result = new

详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片_java

利用Java抓取网页上的所有图片: 用两个正则表达式: 1.匹配html中img标签的正则:<img.*src=(.*?)[^>]*?> 2.匹配img标签中得src中http路径的正则:http:\"?(.*?)(\"|>|\\s+) 实现: package org.swinglife.main; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream;