当前位置: 首页 > 编程笔记 >

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

田鹤轩
2023-03-14
本文向大家介绍java爬虫Gecco工具抓取新闻实例,包括了java爬虫Gecco工具抓取新闻实例的使用技巧和注意事项,需要的朋友参考一下

最近看到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();
  }
}

抓取结果

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

 类似资料:
  • 主要内容:导入所需模块,拼接URL地址,向URL发送请求,保存为本地文件,函数式编程修改程序本节讲解第一个 Python 爬虫实战案例:抓取您想要的网页,并将其保存至本地计算机。 首先我们对要编写的爬虫程序进行简单地分析,该程序可分为以下三个部分: 拼接 url 地址 发送请求 将照片保存至本地 明确逻辑后,我们就可以正式编写爬虫程序了。 导入所需模块 本节内容使用 urllib 库来编写爬虫,下面导入程序所用模块: 拼接URL地址 定义 URL 变量,拼接 url 地址。代码如下所示:

  • 本文向大家介绍Java爬虫 信息抓取的实现,包括了Java爬虫 信息抓取的实现的使用技巧和注意事项,需要的朋友参考一下 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用。 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据。技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么

  • 本文向大家介绍Python爬虫爬取新闻资讯案例详解,包括了Python爬虫爬取新闻资讯案例详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 一个简单的Python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档,网站网页结构算是比较规整,简单清晰明了,资讯新闻内容的采

  • 本文向大家介绍Java 爬虫工具Jsoup详解,包括了Java 爬虫工具Jsoup详解的使用技巧和注意事项,需要的朋友参考一下  Java 爬虫工具Jsoup详解 Jsoup是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 的主要功能如

  • 本文向大家介绍Nodejs实现爬虫抓取数据实例解析,包括了Nodejs实现爬虫抓取数据实例解析的使用技巧和注意事项,需要的朋友参考一下 开始之前请先确保自己安装了Node.js环境,如果没有安装,大家可以到呐喊教程下载安装。 1.在项目文件夹安装两个必须的依赖包 superagent 是一个轻量的,渐进式的ajax api,可读性好,学习曲线低,内部依赖nodejs原生的请求api,适用于node

  • 本文向大家介绍Python制作爬虫抓取美女图,包括了Python制作爬虫抓取美女图的使用技巧和注意事项,需要的朋友参考一下   作为一个新世纪有思想有文化有道德时刻准备着的屌丝男青年,在现在这样一个社会中,心疼我大慢播抵制大百度的前提下,没事儿上上网逛逛YY看看斗鱼翻翻美女图片那是必不可少的,可是美图虽多翻页费劲!今天我们就搞个爬虫把美图都给扒下来!本次实例有2个:煎蛋上的妹子图,某网站的rosi

  • 课程背景 我们生活在一个充满数据的时代。 每天,来自商业、社会以及我们的日常生活所产生「图像、音频、视频、文本、定位信息」等各种各样的海量数据,注入到我们的万维网(WWW)、计算机和各种数据存储设备,其中万维网则是最大的信息载体。 数据的爆炸式增长、规模庞大和广泛可用的数据,使得我们真正进入到了“大数据(Big Data)时代”。我们急需功能强大的数据处理技术(Data Technology),从

  • 本文向大家介绍Java爬虫抓取视频网站下载链接,包括了Java爬虫抓取视频网站下载链接的使用技巧和注意事项,需要的朋友参考一下 本篇文章抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中。这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/)。本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015