在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:WebFetch开源软件地址:https://gitee.com/hexleowang/WebFetch开源软件介绍:WebFetch无依赖极简网络爬虫组件,能在移动设备上运行的微型爬虫。 WebFetch要达到的目标:
使用文档WebFetch的使用非常简单,让小白用户快速上手,WebFetch为用户配置默认页面处理方法,默认将抓取到的页面信息使用 启动代码: WebFetch webFetch = new WebFetch();webFetch.addBeginTask("https://github.com").start(); 停止代码: webFetch.close(); WebFetch执行 WebFetch高级配置WebFetch提供了许多实用的设置接口,支持使用链式调用方法进行设置。以下给出最常使用方法的说明与示例。
//最简单的调用方式是直接传入urlwebFetch.addBeginTask("https://github.com");
//只抓取github.com下,带有p关键字的URL,其他解析出来的URL直接丢弃webFetch.addRule(".*?github\.com.*?p.*?");
//使用层的设置可以很方便的抓取目录内容,//例如,设置抓取两层内容,以新闻目录页面为入口,//则其只抓取第一层的新闻目录以及第二层页面的新闻内容,避免写复杂的规则webFetch.setMaxPageLayer(1); 例如:网站结构如下(A,B,C...均代表网页) layer 0 1 2 3 A---B |-C---E---F |-D---G A是使用addBeginTask传入的起始地址网页,A为第0层,B,C,D为第1层,E,G为第2层,F为第3层。 //设置A为起始页面,搜索层次为两层(第一层为0) webFetch.addBeginTask("http://A").setMaxPageLayer(1).start(); 抓取得到的页面集合为{A, B , C , D}。WebFetch会在内存中记录已经访问过的url,避免出现重复循环访问的情况。
public interface PageHandler { //finish接口返回抓取到的页面(只返回StatusCode=200的请求页面) public void finish(Page page); //此借口是为需要使用到数据库进行存储进行设计的,在调用WebFetch.close()后会调用此接口 public void close();}
public interface URLParser { public Vector<Request> parse(Request parentPage); } WebFetch使用正则表达式抽取 比如:http://abc.def/web/index.html 中存在一个连接
public class WebFetch { ... //设置网络爬虫的线程数量,与页面处理分离,实现专一的网络爬取工作,默认线程数为5 public WebFetch setThreadSize(int max); //设置一个页面的重试次数,默认为不重试 public WebFetch setRetryTimes(int times); //代理设置 public WebFetch setProxy(String host , int port , Proxy.Type type); //设置发起http请求的次数(无论正确与错误),默认为不限制 public WebFetch setMaxTaskSize(int max); //设置连接超时时间,默认为8秒 public WebFetch setConnectionTimeout(int timeout); //设置页面读取超时时间,默认为10秒 public WebFetch setReadTimeout(int timeout);} 关于第一个版本还需要不断改进与完善,希望大家提出宝贵的改进意见,感谢大家的支持。 联系方式:[email protected] |
请发表评论