激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

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

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

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

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

最近看到Gecoo爬蟲工具,感覺比較簡單好用,所有寫個DEMO測試一下,抓取網站
http://zj.zjol.com.cn/home.html,主要抓取新聞的標題和發布時間做為抓取測試對象。抓取HTML節點通過像Jquery選擇器一樣選擇節點,非常方便,Gecco代碼主要利用注解實現來實現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());
  }
}

啟動主函數

?
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();
  }
}

抓取結果

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

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

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

延伸 · 閱讀

精彩推薦
  • JAVA教程java實現sunday算法示例分享

    java實現sunday算法示例分享

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

    java技術網4712019-10-30
  • JAVA教程Java創建多線程的兩種方式對比

    Java創建多線程的兩種方式對比

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

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

    Java中支持可變參數詳解

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

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

    淺談FileItem類的常用方法

    下面小編就為大家帶來一篇淺談FileItem類的常用方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 ...

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

    詳解java中的Collections類

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

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

    Struts2中Action中是否需要實現Execute方法

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

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

    MyBatis持久層框架的用法知識小結

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

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

    淺談常用字符串與集合類轉換的工具類

    下面小編就為大家帶來一篇淺談常用字符串與集合類轉換的工具類。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    java教程網3382020-06-07
主站蜘蛛池模板: 日韩字幕在线观看 | 日韩电影一区二区 | 欧美在线成人影院 | 久久国产精品一区 | chinesehdxxxx实拍| 久久精品79国产精品 | 九九热在线视频观看 | 色网站免费观看 | 久久国产精品99久久人人澡 | 国产小视频在线 | 欧美黄色一级片视频 | 91嫩草丨国产丨精品入口 | av免费在线网| 91精品国产91久久久久久蜜臀 | 成人在线视频播放 | 依人在线视频 | 国产精品久久久久久久久久久久久久久 | 综合精品久久 | 亚洲小视频在线观看,com | 久产久精品 | 一级在线观看 | 色屁屁xxxxⅹ在线视频 | 神马久久蜜桃 | 亚洲黑人在线观看 | 性欧美性欧美 | av成人免费观看 | 亚洲人成网站免费播放 | 天天天干夜夜夜操 | 国产刺激高潮av | 国产亚洲欧美一区久久久在 | av在线免费看网址 | 亚洲第一黄色网 | 日本在线不卡一区二区三区 | 日本羞羞的午夜电视剧 | 九九热免费精品 | 夜添久久精品亚洲国产精品 | 日韩精品中文字幕一区二区三区 | 国产精品久久久久久久久岛 | 中文字幕 亚洲一区 | 国产精品久久久久久久久久久久久久久久 | 色七七网站 |