国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java爬蟲Gecco工具抓取新聞實例

java爬蟲Gecco工具抓取新聞實例

2020-06-28 11:52趙俠客 JAVA教程

本篇文章主要介紹了JAVA 爬蟲Gecco工具抓取新聞實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

最近看到Gecoo爬蟲工具,感覺比較簡單好用,所有寫個DEMO測試一下,抓取網(wǎng)站
http://zj.zjol.com.cn/home.html,主要抓取新聞的標題和發(fā)布時間做為抓取測試對象。抓取HTML節(jié)點通過像Jquery選擇器一樣選擇節(jié)點,非常方便,Gecco代碼主要利用注解實現(xiàn)來實現(xiàn)URL匹配,看起來比較簡潔美觀。

添加Maven依賴

?
1
2
3
4
5
<dependency>
   <groupId>com.geccocrawler</groupId>
   <artifactId>gecco</artifactId>
   <version>1.0.8</version>
</dependency>

編寫抓取列表頁面

?
1
2
3
4
5
6
7
8
9
10
11
@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;
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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));
  }
}

編寫抓取祥情頁面

?
1
2
3
4
5
6
7
8
9
10
11
@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;
}
?
1
2
3
4
5
6
@PipelineName("zjNewsDetailPipeline")
public class ZJNewsDetailPipeline implements Pipeline<ZJNewsDetail> {
  public void process(ZJNewsDetail zjNewsDetail) {
    System.out.println(zjNewsDetail.getTitle()+" "+zjNewsDetail.getCreateTime());
  }
}

啟動主函數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
  }
}

抓取結(jié)果

java爬蟲Gecco工具抓取新聞實例

java爬蟲Gecco工具抓取新聞實例

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
  • JAVA教程java實現(xiàn)sunday算法示例分享

    java實現(xiàn)sunday算法示例分享

    Sunday算法的思想和BM算法中的壞字符思想非常類似。差別只是在于Sunday算法在匹配失敗之后,是取目標串中當前和Pattern字符串對應(yīng)的部分后面一個位置的字...

    java技術(shù)網(wǎng)4712019-10-30
  • JAVA教程Java創(chuàng)建多線程的兩種方式對比

    Java創(chuàng)建多線程的兩種方式對比

    在Java中創(chuàng)建線程的方式有兩種,第一種是直接繼承Thead類,另一種是實現(xiàn)Runable接口。那么這兩種方式孰優(yōu)孰劣呢?這就是本文需要探討的內(nèi)容范疇了,看官...

    hebedich4802019-12-04
  • JAVA教程Java中支持可變參數(shù)詳解

    Java中支持可變參數(shù)詳解

    那個可變參數(shù)的就是個數(shù)組,你傳多少個參數(shù)都被放到那個數(shù)組里面。這樣方便了程序員,因為如果不確定要傳的參數(shù)的個數(shù)的話,我們要寫帶1個參數(shù)的,...

    hebedich3742019-12-17
  • JAVA教程淺談FileItem類的常用方法

    淺談FileItem類的常用方法

    下面小編就為大家?guī)硪黄獪\談FileItem類的常用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ...

    jingxian4792020-06-03
  • JAVA教程詳解java中的Collections類

    詳解java中的Collections類

    這篇文章主要為大家詳細介紹了java中的Collections類,感興趣的小伙伴們可以參考一下 ...

    yongh7014072020-05-24
  • JAVA教程Struts2中Action中是否需要實現(xiàn)Execute方法

    Struts2中Action中是否需要實現(xiàn)Execute方法

    這篇文章主要介紹了Struts2中Action中是否需要實現(xiàn)Execute方法的相關(guān)資料,需要的朋友可以參考下 ...

    SimonMaxs2452020-04-09
  • JAVA教程MyBatis持久層框架的用法知識小結(jié)

    MyBatis持久層框架的用法知識小結(jié)

    MyBatis 本是apache的一個開源項目iBatis,接下來通過本文給大家介紹MyBatis持久層框架的用法知識小結(jié),非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧...

    火雨流觴1782020-05-25
  • JAVA教程淺談常用字符串與集合類轉(zhuǎn)換的工具類

    淺談常用字符串與集合類轉(zhuǎn)換的工具類

    下面小編就為大家?guī)硪黄獪\談常用字符串與集合類轉(zhuǎn)換的工具類。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    java教程網(wǎng)3382020-06-07
主站蜘蛛池模板: 中文字幕av第一页 | 在线免费观看色视频 | 日韩免费视频 | 日韩成人综合 | 免费岛国视频 | 午夜视频网| 日韩中文视频 | 国产成人精品久久二区二区 | 爱色av | 九九精品视频观看 | 精精国产xxxx视频在线播放7 | 九九热在线视频观看这里只有精品 | 激情五月综合 | 午夜精品福利一区二区三区蜜桃 | 国产中文视频 | 欧美精品一二区 | 国产精品一区二区久久 | 精品一区二区视频 | 欧美a级成人淫片免费看 | 久久久亚洲精品中文字幕 | 亚洲综合自拍 | 亚洲 欧美 日韩在线 | 欧美日韩有码 | 欧美日韩在线视频免费 | 欧美视频成人 | 色综合久久88色综合天天 | 亚洲热妇 | 国产成人一区二区在线观看 | 免费看国产片在线观看 | 伊人五月婷婷 | 国内偷拍av| 亚洲精品一区二区三区在线 | 在线观看av国产一区二区 | 日韩av一区二区在线观看 | 亚洲精品二区三区 | 97精品国产97久久久久久免费 | 色婷婷av久久久久久久 | 国产成人免费在线 | 国产精品一二三区 | 久久国产精品久久 | www.av在线播放 |