推外网络专注营销型网站品牌策划与推广

FOCUS MARKETING WEBSITE BRAND PLANNING AND MARKETING PROMOTION

支持分布式部署的Java爬虫框架_2

2019-09-28 14:02:44 100000+ 编辑:推外网络 来源:本站原创

上次已经讲到Seimicrawler的返回数据提取,那么我们今天就讲讲里面回调函数的应用。仅仅只有一个回调函数有点不能满足你的需求的,如果你还想使用startUrl页面中的其它URL进行请求获取数据的话,你就需要自定义回调函数了。接下来是自定义的注意事项:

1、作为回调函数,必须满足publicvoidname(Responseresponse){},就是方法是公有的,无返回值,并且只能有一个参数Response。

2、通过newRequest或者Request.Bulid来创建实体

3、在回调函数里的产生的Request,是可以指定其他回调函数的,当然也可以指定自己为回调函数。

4、在requset里面设置的一个回调函数,只需提供它的string类型的名称就可以了

5、继承BaseSeimiCrawler的爬虫,可以在直接在函数里面调用父类的push将新的抓取请求发送到请求的队列里面

另外seimi默认的UA(useragent)为seimicrawler/jsoupxpath,要是你不想用这个,感觉不方便的话,你可以自定义一个。需要覆盖BaseSeimiCrawler里面的getUserAgent方法,这样的话你想伪装一个UA,可以自己实现一个UA库,每次都使用不同的。

为了可以支持SeimiAgent,你首先必须的知道SeimiAgent的服务地址。在需要crawler中重写的两个方法来提供服务信息:

1、seiAgentHost();返回值为string。指定服务器如:10.15.12.212

2、seimiAgentPort();返回值为int。指定监听的端口

有了爬虫,接下来就可以启动你的爬虫进行数据抓取了。启动爬虫系统,首先你得有提个main函数,当然最好是一个独立的启动类。在main函数中,初始化Seimi这个对象。具体参考:

publicclassBootCk{

publicstaticvoidmain(String[]args){

Seimisei=newSeimi();

sei.start("basic");

}

}


本站文章均为推外网络摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...