上次已经讲到Seimicrawler的返回数据提取,那么我们今天就讲讲里面回调函数的应用。仅仅只有一个回调函数有点不能满足你的需求的,如果你还想使用startUrl页面中的其它URL进行请求获取数据的话,你就需要自定义回调函数了。接下来是自定义的注意事项:
1、作为回调函数,必须满足public void name(Response response){},就是方法是公有的,无返回值,并且只能有一个参数Response。
2、通过new Request或者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这个对象。具体参考:
public class BootCk {
public static void main(String[] args){
Seimi sei = new Seimi();
sei.start("basic");
}
}