`

前嗅ForeSpider脚本教程:频道脚本

阅读更多

今天,小编主要为大家介绍一下:前嗅ForeSpider脚本中的频道脚本。

 

频道脚本是频道配置中的脚本, 如果配置了频道脚本,该频道的所有采集流程将被配置的脚本所接管。

 

一.可用全局对象(只读)

 

EXTRACT:当前采集引擎[ 对象类型: extractor ]

DATADB:当前连接的数据库[ 对象类型: dataBase ]

RESULT:当前结果集对象[ 对象类型: result ]

 

二.this指针

 

当前频道节点[channel ]对象

 

三.脚本返回值

 



示例一:

 

用脚本创建一个采集源列表

 

1.以下脚本将生成 

 

http://xjrb.xjrb.com/xjrb/20141231/index.htm 共31条链接:

url u;
for(i=1;i <=31;i++){
u.entryid = this.id;   //频道Id 
u.tmplid = 1;//模板Id 
u.urlname="http://xjrb.xjrb.com/xjrb/201412"+ i.Dim(2) + "/index.htm";  
//链接地址 
u.title = "test";
RESULT.AddLink(u);//添加到最后的结果中} 

 

2.以下脚本将生成从当前日期递推前十天的链接:

url u;
time t1;
for(i=0;i<10;i++){  
u.title = "test";  //链接标题  
u.entryid = this.id;  //频道id  
u.tmplid = 1;//模板Id  
pre = t1.Preday(i);//向前计算日期  
u.urlname = "http://www.cdrb.com.cn/html/"+ pre.year +"-" + pre.month  +  
"/" + pre.day + "/content_2155799.htm";  //链接地址   
RESULT.AddLink(u);//添加到最后的结果中

}

 

3.以下脚本用关键词拼接链接

url u;
var keys=["前嗅","爬虫"];
for(i=0;i<keys.size;i++){ 
u.title = "检索";  //链接标题  
u.entryid = this.id;   //频道id  
u.tmplid = 1;  //模板Id  
u.url = "http://ww.forenose.com/search?keywords="+ keys[i];   //链接地址
RESULT.AddLink(u);//添加到最后的结果中

}



示例二:用脚本采集数据

1.以下脚本查找表格并抽取表格数据

gdoc = EXTRACT.OpenDoc(this,"http://gk.sjtu.edu.cn/index.php/list/fellow/2015-
10-30-15-02-59/241-2015-11-18-02-21-01",0);  
if(gdoc){  
dm = gdoc.GetDom();  
record rec;  
if(dm){     
tab = dm.FindName("table");     
if(tab){        
tr = dm.FindName("tr", tab);        
while(tr){             
name = dm.FindName("td", tr);            
if(name){  //找到数据                     
posd = 0;corp=0;fund=0;                     
rec.name = dm.GetTextAll(name);   //名字                     
posd = name.next;                     
if(posd){                             
corp = posd.next;                             
rec.position = dm.GetTextAll(posd);                              
}                              
if(corp){                                   
 fund = corp.next;    
                                                                                              
 rec.company =dm.GetTextAll(corp);                                        
 }                                            
if(fund){                                     
rec.fund =dm.GetTextAll(fund);  
                               }                            
RESULT.AddRec(rec,3);                                            
 }                                    
 tr = tr.next; 
}                                  
}                        
  }          
 EXTRACT.CloseDoc(gdoc);                
  }

2.以下脚本从服务器请求json数据并存入到记录中gdoc = EXTRACT.OpenDoc(this,"http://www.w3school.com.cn//example/jquery/demo_ajax_json.js",0);

if(gdoc){        
 jScript js;
 record rec;
 data = js.RunJson(gdoc.GetDom().GetSource());        
 rec.name = data.firstName;        
 rec.family=data.lastName;        
 rec.age = data.age;        
 schea =EXTRACT.GetSchema("schemaName");  //获取表单ID        
 if(schea){                
        sId = schea.id;                
        else sId = 1;                
        RESULT.AddRec(rec,sId);                             
            }         
 EXTRACT.CloseDoc(gdoc);              
            }
分享到:
评论

相关推荐

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 _

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 _

    TCL脚本实例: 检查IP的脚本

    TCL脚本实例:检查IP的脚本 TCL脚本实例:检查IP的脚本是一种使用TCL语言编写的脚本,用于检查指定的IP地址是否可以ping通。本脚本可以根据配置文件中的IP地址列表,自动执行ping操作,并输出ping结果。 知识点: ...

    Bash脚本教程:Java JAR应用快速启动与监控.zip

    本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR...

    Bash脚本教程:优雅地管理Java应用.zip

    本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR...

    Bash脚本教程:如何优雅地停止JAR服务.zip

    本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR...

    Installshield 脚本代码:卸载时杀掉进程

    ### Installshield 脚本代码:卸载时杀掉进程 在软件开发和部署过程中,安装程序(如Installshield)的脚本编写是一项重要的技能。本文将深入探讨一个具体的脚本示例,该脚本旨在在卸载软件时终止特定进程。通过...

    Unity3D 2018 最新最全800个脚本教程

    Unity3D教程:制作简单小汽车游戏 OnGUI的视觉化编辑 unity3d角色血条 Unity3D格斗游戏运动特效 MenuItem自定义菜单项 Unity3D脚本:导弹追踪代码 Unity3D教程:UI自动适合屏幕分辨率 中慢动作与加速动作的实现 ...

    ArcGIS教程:脚本环境

    ### ArcGIS教程:脚本环境 #### 知识点概览 1. **脚本工具中的环境设置原理** 2. **环境值的应用机制** 3. **脚本内环境设置覆盖方法** 4. **ArcPy环境处理函数介绍** 5. **独立脚本与被调用脚本的环境设置** ####...

    python项目练习python自动化脚本:12306-火车票购票

    python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python项目练习python自动化脚本:12306-火车票购票python...

    AE脚本:自动重命名工具 OCD Renamer V1.4脚本 和教程

    总的来说,"AE脚本:自动重命名工具 OCD Renamer V1.4"是一款针对AE用户的实用工具,通过自动化处理,提升了图层和效果的管理效率,使得复杂的项目也能保持清晰的结构,有助于团队合作和项目维护。对于任何经常处理...

    经典windows脚本教程

    《经典Windows脚本教程》是一份由微软官方提供的宝贵学习资源,主要涵盖了VBS(Visual Basic Script)和JS(JavaScript)在Windows环境下的脚本编程技术。这些脚本语言在系统自动化、任务调度、网页交互等多个领域都...

    routeros-中文脚本教程.zip

    中文脚本教程针对的是那些希望在RouterOS环境中使用中文进行脚本编程和系统管理的用户。本教程旨在帮助这些用户理解和掌握RouterOS中的命令行接口(CLI)以及其内置的脚本语言—— RouterOS Scripting Language(RSC...

    Unity3D教程:如何使用脚本进行控制1

    在这个“Unity3D教程:如何使用脚本进行控制”中,我们将探讨如何通过编写JavaScript脚本来控制游戏对象的行为,尤其是立方体的移动和旋转。 首先,教程创建了一个立方体GameObject作为游戏对象。为了使立方体受到...

    云控系统脚本源码:批量化控制与自动化脚本源码 #Autojs.pdf

    云控系统脚本源码:批量化控制与自动化脚本源码 #Autojs.pdf

    学习教程大全:gis python 脚本大全:2022年.pdf

    面向设计师的编程设计知识系统ArcGIS下的Python编程

    Shell脚本学习教程PDF版

    在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...

    windows脚本教程 chm

    《Windows脚本教程》是一本全面介绍Windows操作系统中脚本技术的权威指南,主要针对的是批处理脚本(Batch Scripting)和Windows PowerShell脚本。CHM格式是Microsoft的 Compiled HTML Help,通常用于电子手册或文档...

    C语言中文网shell脚本教程

    **C语言中文网shell脚本教程** 这是一份关于Shell脚本编程的离线学习资料,包含了一系列HTML文件,旨在帮助用户深入理解并掌握Linux Shell脚本编程技术。以下是其中涉及的一些关键知识点: 1. **Shell命令的本质**...

    Genesis2000、InCAM脚本图文教程

    编写C-shell脚本前,首先需要理解C-shell的脚本文件首行的作用。如果脚本首行以#!开始,后面紧跟一个程序名,系统会用那个程序执行后续的命令。如果首行以#开始,系统会用C-shell执行脚本。如果首行不是以#开始,...

Global site tag (gtag.js) - Google Analytics