网络爬虫框架cetty的实现
生活随笔
收集整理的這篇文章主要介紹了
网络爬虫框架cetty的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網絡爬蟲框架cetty的實現
- 功能介紹
- maven配置
- 簡單demo的實現
- 提供能力
- 關于demo的github地址如下
功能介紹
maven配置
<dependency><groupId>com.jibug.cetty</groupId><artifactId>cetty-core</artifactId><version>0.1.8</version> </dependency>簡單demo的實現
package com.leo.demo.cettytest;import com.google.common.collect.Lists; import com.jibug.cetty.core.Bootstrap; import com.jibug.cetty.core.Page; import com.jibug.cetty.core.Payload; import com.jibug.cetty.core.Result; import com.jibug.cetty.core.handler.ConsoleReduceHandler; import com.jibug.cetty.core.handler.HandlerContext; import com.jibug.cetty.core.handler.ProcessHandlerAdapter; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;import java.util.List;/*** 抓取天涯論壇文章列表標題* http://bbs.tianya.cn/list-333-1.shtml** @author Administrator* @Date 2019/5/8 10:39* @TODO*/ public class Tianya extends ProcessHandlerAdapter {@Overridepublic void process(HandlerContext ctx, Page page) {//獲取 DocumentDocument document = page.getDocument();//dom解析Elements itemElements = document.select("div#bbsdoc>div#bd>div#main>div.mt5>table>tbody").get(2).select("tr");List<String> titles = Lists.newArrayList();for (Element item : itemElements) {String title = item.select("td.td-title").text();titles.add(title);}//獲取Result對象,將我們解析出來的結果向下一個handler傳遞Result result = page.getResult();result.addResults(titles);//通過fireXXX 方法將本handler 處理的結果向下傳遞//本教程直接將結果傳遞給ConsoleHandler,將結果直接輸出控制臺ctx.fireReduce(page);}public static void main(String[] args) {//啟動引導類Bootstrap.me().//使用同步抓取isAsync(false).//開啟一個線程setThreadNum(1).//抓取入口urlstartUrl("http://bbs.tianya.cn/list-333-1.shtml").//通用請求信息setPayload(Payload.custom()).//添加自定處理器addHandler(new Tianya()).//添加默認結果處理器,輸出至控制臺addHandler(new ConsoleReduceHandler()).start();} }提供能力
關于demo的github地址如下
https://github.com/leo825/sortalgorithm.git
總結
以上是生活随笔為你收集整理的网络爬虫框架cetty的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java常用的排序算法的思想以及实现
- 下一篇: shiro登录认证过程讲解(转)