WebSpider蓝蜘蛛网页抓取工具5.1用户手册
- 概述
- 关于网页抓取工具
本工具可以抓取互联网上的任何网页,包括需要登录后才能访问的页面。对抓取到页面内容进行解析,得到结构化的信息,比如:新闻标题、作者、来源、正文等。支持列表页的自动翻页抓取,支持正文页多页合并,支持图片、文件的抓取,可以抓取静态网页,也可以抓取带参数的动态网页,功能极其强大。
用户指定要抓取的网站、抓取的网页类型(固定页面、分页显示的页面等等),并配置如何解析数据项(如新闻标题、作者、来源、正文等),系统可以根据配置信息自动实时抓取数据,启动抓取的时间也可以通过配置设定,真正做到“按需抓取,一次配置,永久抓取”。抓来的数据可以保存到数据库中。支持当前主流数据库,包括:Oracle、SQL Server、MySQL等。
本工具完全可以替代传统的编辑手工处理信息的模式,能够实时、准确、一天24*60不间断为企业提供最新资讯和情报,真正能为企业降低成本,提高竞争力。
系统功能结构图如下图所示:
- 特点
- 适用范围广,可以抓取任何网页(包括登录后才能访问的网页)
- 处理速度快,如果网络畅通,1小时可以抓取、解析10000个网页
- 采用独特的重复数据过滤技术,支持增量式数据抓取,可以抓取实时数据,如:股票交易信息、天气预报等
- 抓取信息的准确性高,系统提供了强大的数据校验功能,保证了数据的正确性
- 支持断点续抓,在当机或出现异常情况后可以恢复抓取,继续后续的抓取工作,提高了系统的抓取效率
- 对于列表页,支持翻页,可以抓取到所有列表页中的数据。对于正文页,可以对分页显示的内容自动进行合并;
- 支持页面深度抓取,页面间可以一级一级地抓下去。比如,通过列表页抓取到正文页URL,然后再抓取正文页。各级页面可以分别入库;
- WEB操作界面,一处安装,随处使用
- 分步解析,分步入库
- 一次配置,永久抓取,一劳永逸
- 机型要求:PC、PC Server、服务器
- 最小内存:256MB
- 最小硬盘空间:1GB
- 操作系统:Windows 2K/XP,Linux、Solaris等Unix系统
- 数据库:MySQL、SQL Server、Oracle之一
- JAVA JDK:1.5及以上版本
- Web Server:Tomcat5.0及以上版本
- 安装步骤
- 安装JDK 1.5.x
(温馨提示:如果安装过程中需要技术支持,请访问互联网舆情监测系统,通过电话或者即时通讯等方式与我们取得联系。)
如果机器上没有JDK 1.5.x的环境,需要安装JDK 1.5.x,推荐安装的版本为1.5.0。
JDK为SUN公司推出的JAVA开发包,您可以去网站http://www.sun.com下载,也可以在Java Archive | Oracle下载其中的“JDK 5.0 Update 16”,Windows开发包建议用: jdk-1_5_0_05-windows-i586-p.exe ,Linux平台开发包建议用:jdk-1_5_0-linux-i586-rpm.bin。
安装完毕后,设置环境变量JAVA_HOME,需要设置为JDK的安装目录。例如:Windows下为C:\Program Files\Java\jdk1.5.0_05,Unix下为/usr/java/jdk1.5.0。
- 安装数据库
如果机器上没有安装数据库,请安装MySQL数据库。您可以去mysql官方网站MySQL :: MySQL Community Downloads下载,
您也可以在ftp://mysql.secsup.org/pub/software/mysql/Downloads/MySQL-4.0/下载,Windows平台建议用:mysql-4.0.12-win.zip,Linux平台建议用:MySQL-server-4.0.25-0.i386.rpm或者MySQL-server-4.0.27-0.i386.rpm,MySQL-client-4.0.27-0.i386.rpm。
- 导入系统数据
把安装包解压,数据库脚本文件存放在目录dbscript下。
如果使用的数据库为MySQL,需要使用如下两个命令行导入数据(请注意mysql所在路径及*.sql 文件所在的路径,mysql缺省口令为空):
mysql –u【用户名】 -p【密码】 < db_wis.sql
mysql –u【用户名】 -p【密码】 < mydatabase.sql
例如:
mysql –uroot < db_wis.sql
mysql –uroot < mydatabase.sql
即可完成数据库的创建及数据导入工作,其中db_wis是应用数据库,mydatabase是测试数据入库的数据库。
- 安装本系统
把安装包解压到指定目录。Windows系统中,需要把本系统安装在C:\webspider目录下(请注意是C:\webspider,而不是C:\webspider\webspider),请确认文件webspider.war存放在C:\webspider目录下;Unix系统中,需要把本系统安装在/usr/local/webspider目录下,请请确认文件webspider.war存放在/usr/local/webspider目录下。
1)如果已经安装了tomcat5.0及以上版本,可以把本抓站系统集成到已有tomcat中,如果没有安装tomcat5.0及以上版本,请直接阅览2)。
为了保证程序能正常运行,需要修改tomcat的启动脚本。Windows下修改文件catalina.bat,在文件的前面设置变量JAVA_OPTS,如下所示:
set JAVA_OPTS=-agentlib:C:\webspider\classloader
Unix系统下,修改文件catalina.sh,在文件的前面设置变量JAVA_OPTS,如下所示:
JAVA_OPTS='-agentpath:/usr/local/webspider/libclassloader.so'
需要在tomcat的配置文件server.xml中增加一个Context(子项目),需要增加的配置代码如下(样例):
<Context path="/webspider" docBase="C:\webspider\webspider.war" reloadable="false" debug="0" crossContext="true">
<Resource name="jdbc/wis" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/wis">
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/db_wis?autoReconnect=true&useUnicode=true&characterEncoding=gbk</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
</ResourceParams>
</Context>
2)如果机器上没有安装tomcat,直接使用安装目录下的tomcat。Windows系统下需要修改C:\webspider\tomcat-5.0.28\conf\server.xml中的Context配置,Unix系统下需要修改/usr/local/webspider/tomcat-5.0.28/conf/server.xml中的Context配置。
如果本系统没有安装在缺省目录下,需要修改<Context>中的属性docBase,把其中的路径设置为系统安装到的路径。并且要修改tomcat的启动脚本,在Windows下修改文件catalina.bat,在unix下修改catalina.sh,把变量JAVA_OPTS中的-agentlib设置为正确值。参见本节的1)。
<ResourceParams …>和</ResourceParams>之间为数据库连接池配置。需要修改数据库连接池配置中的driverClassName、url、username和password等参数值,以保证能正常连接数据库。
启动tomcat后,在浏览器中键入网址:http://【目标服务器】/webspider/,例如:http://localhost:8080/webspider/,进入本抓取工具的登录界面。
- Tomcat启动和停止
1)Windows系统:
启动命令:startup.bat
停止命令:shutdown.bat
为了实现tomcat在开机时自动启动,需要把tomcat加到系统服务中。进入tomcat的bin目录,修改tomcat的service.bat,在语句
echo The service '%SERVICE_NAME%' has been installed.
前加上:
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-agentlib:C:\webspider\classloader"
然后执行如下两行命令:
service remove
service install
重新安装tomcat服务
2)Unix系统:
启动命令:startup.sh
停止命令:shutdown.sh
为了实现tomcat在开机时自动启动,需要把tomcat加到操作系统的启动脚本中,例如:Linux的启动脚本文件为/etc/rc.local。在启动脚本中增加一个命令行:【tomcat所在目录】/bin/startup.sh &
例如:/usr/local/webspider/tomcat-5.0.28/bin/startup.sh &
本工具使用的术语如下:
- 正文页:只有一条记录的页面,如新闻内容页、职位信息页面等
- 列表页:有多条记录的页面,如新闻列表页,职位列表页等
- 页面配置:对于要抓取的页面进行分析配置,找到要获得的数据项的定位
- 页面解析:对于页面上的数据项进行解析,得到该数据项
- 页面入库:针对解析出的数据项,存放到数据库里
- 下级页面:页面URL来自上级页面的网页,也叫做子页面。一个页面得到很多链接,针对每一个链接进行配置得到的页面
- 定位信息:能够定位到页面中所需的数据的起始和终止位置(定位字符串)
- 规则表达式:处理字符串匹配的一种简便方法,参见“规则表达式”
- URL配置:用来配置如何获得要抓取页面的网页地址
- URL参数配置:有的页面URL中含有参数,需要进行配置
- 网页调用方式:页面请求的方式,包括POST和GET,通常为GET方式。判断一个页面的调用方式可以在页面代码中的“<form .. method=? ..>”处查到
- 其它页URL获得方式:获得其他页网页地址的方式,有两种方式:
- 固定模式:遵循某种固定模式,网页地址中可以带参数
- 动态解析:没有固定的模式,需要分析页面,通过解析获得其他页地址
- 参数取值类型:URL参数中参数取值方式,有两种方式:
- 有序值:遵循某种顺序,包括起始值、循环步长和终止值。例如:顺序递增的信息ID值
- 离散值:分散的值序列,例如:城市区号、信息分类编码等
- 列表页记录:列表页中要获取的每一项被称为一条记录,通常一行数据为一条记录
- 规则表达式转义:规则表达式中对于一些特殊字符(如.、?、*等)需要进行转义,因规则表达式配置容易出错,本系统提供自动转义功能
- 规则表达式检测:对于写好的规则表达式,进行检测,因规则表达式配置容易出错,本系统提供检测功能
- 使用说明
首先介绍一下本软件的使用流程,以下的具体功能说明均按照使用流程一步一步展开。
- 登录:进入系统
- 入库数据表配置:设置本系统将要使用的数据库和数据表信息
- 页面配置
页面基本信息配置:要抓取一个网站,首先要配置该网站的基本信息,作为入口
URL配置:配置要抓取页面的URL
定位信息配置:配置要抓取页面内容的具体定位信息
下级页面配置:对于任何页面,都可以根据该页面解析出来的URL,增加子页面,可以深度挖掘想要的信息。
- 页面解析
页面解析配置:配置要抓取页面内容的具体解析信息
值替换:对需要替换的页面数据项信息进行替换设置
- 页面入库
设定入库数据表:设定该页面要入库的数据表
入库字段对照值:设定该页面数据项和数据表字段的对照关系
系统使用流程图如下:
辅助功能主要包括登录、修改管理员信息、系统参数配置、入库数据表配置、抓取统计、查看网页源码、软件注册等。
进入系统,必须先登录,在浏览器里输入:http://【服务器IP:端口】/webspider/,例如:http://localhost:8080/webspider/,显示登录页面,输入管理员用户名、密码后,按“登录”按钮进行登录,登录成功后,进入系统。
系统初始密码为:11。进入系统后,请及时在菜单“修改管理员信息”中修改登录密码。
- 修改管理员信息
修改管理员信息包括修改管理员的密码、中文名。
- 系统参数配置
用于修改系统中预设的系统参数,包括同时抓取的网页数、信息抓取日志文件存放路径、网络连接超时等。参数说明如下:
- 入库数据表配置
入库数据表配置用于配置系统要使用的数据库、数据表信息。包括增加入库数据表、修改入库数据表、删除入库数据表功能。
增加入库数据表,包括如下几个输入框:
JDBC driver:jdbc驱动类名,例如:com.mysql.jdbc.Driver
JDBC url:jdbc连接url,例如:jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=gbk。JDBC Driver和JDBC Url如何配置,参见“6.2 JDBC配置参考”。
用户名:连接数据库使用的用户名
密码:数据库用户密码
数据表名:指定入库数据表,将抓取到的数据保存到该数据表中。该数据表必须在数据库中存在(事先建立)。
入库方式:获取的数据保存到数据库的方式,本系统提供三种方式:
- insert:插入方式,如果关键字字段值已存在,入库失败
- update:只对数据库中已经存在的记录进行更新
- replace:对于存在的记录进行更新,不存在的记录进行插入
定位记录的字段列表:当入库方式为“update”和“replace”时,必须设定用于定位记录的字段列表,多个字段间使用西文逗号分隔。
JDBC Driver、JDBC Url、用户名和密码这四项可以不输入,如果不输入,将使用系统缺省的数据库连接。
点击数据表名输入框右侧的“选择数据表”按钮,在新弹出的页面内会列出需要进行入库的数据表名,选中后该数据表名会添加到输入框内,接下来选取入库方式。当入库方式为“update”和“replace”时,必须设定用于定位记录的字段列表,可以点击右侧“选择字段”按钮进行选择,点击“新增”按钮,系统会增加一条入库数据表信息。
修改入库数据表,修改已经配置好的入库数据表信息,操作步骤同“增加入库数据表”。
删除入库数据表,在入库数据表列表内,选中要删除的入库数据表,点击“删除”按钮即可删除。
- 抓取统计
抓取统计用于查看系统对网站抓取情况的日志、统计信息等。在统计信息列表的“操作”栏中有三项操作:查看日志、查看详细统计信息、抓取。
查看日志:可以查看该网站的抓取日志。
查看详细统计信息:可以查看该网站及其所有下级页面的详细抓取信息,可以查看最新一次及累计的抓取页面数、成功抓取页面数、成功解析页面数、成功入库页面数。
抓取:可以启动该网站的抓取,实时观察抓取情况。
- 查看网页源码
查看网页源码用于查看网站的页面代码,在进行抓取页面配置的过程中,需要打开页面的代码进行分析配置,但是有些网站出于安全考虑,对页面进行安全保护,导致无法获得页面代码,针对这些网站,可以使用本功能获得页面代码。
在“网址”项输入要获得代码的URL,例如www.zhzhcn.cn。点击右侧的“确定”按钮,系统会将整个页面代码写入下方的文本框内,这样就可以进行页面配置了。点击“察看”按钮,可以进入到该页面,进行浏览。
- 软件注册
该工具未注册时,只能使用有限的试用功能,要想正式使用本系统,获得更多的使用功能的话,必须进行软件注册,点击页面上方菜单栏中的“软件注册”链接(如果已经注册了,不会显示该链接),会进入“软件注册”页面,该页面会显示您的机器码,在序列号输入框内正确输入我方提供的序列号后,点击确定后即可进行注册,如果您输入的序列号正确的话,您就可以畅通无阻地使用该工具的强大功能了。
“页面配置”用于对要抓取网站的页面进行分析配置,这是进行抓取配置的第一步,主要功能包括增加页面基本信息配置、修改页面基本信息配置、删除页面基本信息配置、页面定位信息配置、URL配置、URL参数配置、页面解析、页面入库、下级页面配置、设置抓取时间、启动抓取、复制页面配置等功能。
进入“页面配置”页面有两种方式:
- 在任何页面下,点击页面最上方的菜单项中的“页面配置”链接
- 在进行页面操作时,如果上方有导航条,点击导航条中“页面配置”链接
页面配置页面中,上方的“网站ID”、“网页名称”等输入框中的为查询条件,如果不输入,表示不按该字段检索。各个字段之间是“且”的关系,即:如果指定了多个字段值,只有当这几个条件同时满足时才符合查询条件。
可以按“网站ID”、“网页名称”、“网页类型”等字段排序,在排序字段列表中选择一个排序字段即可。排序方式包括:升序和降序。升序表示从小到大的排列顺序,反之则是降序。
“是否使用模糊查询方式”只对按“网页名称”查询有效。如果使用模糊查询方式,只要网页名称中包含了输入的关键字,就满足查询条件。不使用模糊查询方式,只有当输入的关键字和网页名称完全相同时才满足查询条件。例如网页名称为“最终页”,输入的查询关键字为“最终”,当使用模糊查询方式时,因为“最终页”中包含“最终”两个字,所以网页名称满足查询条件;如果不使用模糊查询方式,因为“最终页”和“最终”不相等,所以网页名称不满足查询条件。
增加页面基本信息是整个页面配置的第一步,是增加一个网站抓取的入口页。点击页面上方的“页面配置”菜单,页面会显示系统已经配置好的网站列表,在列表的上方和下方各有一排按钮,点击其中“新增”按钮,即进入增加页面基本信息页面,这是配置信息抓取的入口页。
根据页面提示设定好各输入项,具体输入项设定说明如下:
网页名称:该项必须输入,根据需要设定名称,比如:“”。
是否登录:如果要抓取的网站需要登录,选择“是”,否则选择“否”,当选取“是”时,下面会出现登录设置输入框,包括登录URL、登录方式、登录成功标志三项,其中“登录URL”项必须设置,设置为登录页面的URL,通常应包含用户名及用户密码,例如:http://www.***.cn/login?username=test&passwd=123。
网页类型:有两个选项:正文页和列表页,正文页和列表页解释说明参见“术语”。
休眠时间:每抓一个网页休眠的毫秒数,0表示不休眠。该项必须输入。设置休眠时间主要是为了降低服务器的负载,保证其他关键业务的正常运行。
输入方式:有两个选项:html和text,表示被解析页面的输入方式,一般情况下都是html输入方式。如果为text(文本)输入方式,将把页面内容转换为纯文本后,再进行页面解析。
页面字符集:表示页面文本使用的字符集。有5个选项:简体中文、繁体中文、UTF-8、iso8859_1和自动识别。对于英文网站或国内的网站,通常应设置为简体中文;对于德语网站,通常应设置为iso8859_1。对于UTF-8编码的网页,最好设置为自动识别,其他情况请不要轻易设置为自动识别。
是否循环抓取:表示所有页面抓取结束后,是否从头开始抓取,“是”表示重新抓取,“否”表示不重新抓取。只有当入口页的URL设置了1个或多个参数时,本设置才有效。
URL保存周期:抓取到的页面URL的保存周期,单位为天。保存网页的URL是为了保证不会重复抓取网页。如果抓取的网页数很多,日积月累,会使保存的URL信息过多而降低系统的处理速度。为了提高系统的性能,应根据实际情况尽可能把URL保存周期设置得小一些。需要注意的是,0表示不保存已处理过的网页URL。不保存已处理过的网页URL,意味着下次抓取时,系统无法判断该URL是否抓取过,因此系统就会尝试抓取。该项必须输入。
可接受的网页连续抓取失败次数:抓取网页失败时,继续尝试抓取的页面数。假设其取值为N,如果实际的连续失败次数大于N,则不再继续抓取。一旦成功抓取了一个网页,实际的连续失败次数从零开始重新计数。0表示不尝试抓取,该项必须输入。
调试信息显示方式:有四个选项:显示页面解析过程、显示详细调试信息、显示简单调试信息和不显示调试信息。是用来设定系统在抓取该网站时,采用何种方式显示调试信息的。显示调试信息的详细程度按简单到详细排序如下:
- 不显示调试信息
- 显示简单调试信息:显示正在处理的网页URL
- 显示详细调试信息:显示数据项的取值
- 显示页面解析过程:显示数据项解析时的输入文本
调试信息详细程度高的输出的调试信息包括上级需要输出的所有调试信息。例如,显示详细调试信息包括简单调试信息,显示页面解析过程包括详细调试信息。
在抓取设置或调试阶段,应使用“显示详细调试信息”或“显示页面解析过程”或“显示简单调试信息”以便查看抓取结果,在出现问题的情况下,可以准确地定位出问题所在。
注意:抓取正常后,为了减少日志文件中的冗余信息,应设置为“不显示调试信息”。
是否有效:设定该网页是否生效。“有效”表示系统可以在后台中抓取该网页;“无效”表示系统在后台不抓取该网页。该选项可以随时进行修改,这样可以随时控制某个配置好的网站是否进行抓取。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“页面基本信息增加成功”页面,该页面会显示设定的各项内容。点击“完成”按钮,会返回“网站列表”,在列表中会显示出刚才新增加的网站信息,这样完成了抓取一个网站的入口配置。
在“网站列表”中右侧“操作”栏中,点击“修改基本信息”链接,会进入“修改页面基本信息”页面,根据需要设置好要修改的项,具体设置方式可参照“增加页面基本信息”,点击“保存”按钮,如果设置正确无误,会进入“修改页面基本信息成功”页面,显示页面设置的内容,点击“完成”按钮,会返回“网站列表”。
在“网站列表”中,选中一条记录,点击列表页上方或下方的“删除”按钮,系统会提示确认信息,确定后删除该条页面基本信息记录,如果未选中记录,系统会提示选中要删除的记录。
完成“增加基本页面信息”后,页面会显示系统已经配置好的网站列表,或者点击页面上方的“页面配置”菜单,进入页面配置网站列表页面,进行URL配置,选中要进行配置的网站,点击列表页上方或下方的“URL配置”按钮,如果未选中要进行配置的网站,系统会提示“请选择要配置URL的页面”,选中后,系统会根据所选中网站的网页类型、是否已经有URL配置信息,进入不同的操作页面:
- 网页类型是正文页,
未进行URL配置的,进入“增加正文页URL及定位配置信息”页面;
已经进行过URL配置的,进入“修改正文页URL及定位配置信息”页面;
- 网页类型是列表页,
未进行URL配置的,进入“增加列表页URL配置信息”页面;
已经进行过URL配置的,进入“修改列表页URL配置信息”页面;
当选中网站的网页类型是正文页,且未进行URL配置的,点击“URL配置”按钮进入“增加正文页URL及定位配置信息”页面;
按页面提示设置好各项,各项具体说明如下:
页面URL:该项必须输入,设定要抓取的正文页的URL地址,比如:http://paper.people.com.cn/rmrbhwb/html/2007-03/05/content_12414679.htm。
页面调用方式:用来设定页面请求的处理方式,有两个选项:POST和GET,通常为GET方式。
是否重新抓取:用来设定对于抓取过的页面是否重新抓取。“是”表示重新抓取,“否”表示不重新抓取。
是否需要unescape解码:如果页面内容使用javascript escape编码,需要进行unescape解码。这种情况下页面调用javascript的函数unescape解码,为了获得解码后的内容,需要把本项设置为“是”。
可接受的页面URL连续重复次数:抓取页面过程中,URL连续重复时,继续尝试的抓取次数。假设其取值为N,如果实际的连续URL重复次数大于N,则不再继续抓取。一旦一个网页的URL不重复,实际的URL连续重复次数从零开始重新计数。本项的缺省值为0,表示碰到已抓取过的网页,就停止抓取。该项必须输入且不小于零。
可接受的入库连续失败次数:抓取网页过程中,入库连续失败时,继续尝试的抓取次数。假设其取值为N,如果实际的入库连续失败次数大于N,则不再继续抓取。一旦一个网页成功入库,实际的入库连续失败次数从零开始重新计数。本项的缺省值为0,表示入库一旦失败,就停止抓取。该项必须输入且不小于零。
定位到数据项开始的字符串:用于设置能够唯一定位到要抓取的数据项开始的字符串,这样可以保证解析出的页面数据项的准确性,也可以提高抓取效率。可以不设置,表示从页面的起始处开始。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--2-->表示跳过2次匹配,第3次匹配到的为起始位置。
定位到数据项结束的字符串:用于设置能够唯一定位到要抓取的数据项结束的字符串,这样可以保证解析出的页面数据项的准确性,也可以提高抓取效率。可以不设置,表示数据项一直到页面结束。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--1-->表示跳过1次匹配,第2次匹配到的为数据项结束位置。
是否分页显示:用于设定该正文页是否有多页。“是”表示分页显示,“否”表示不分页显示。当选择“是”时,页面会显示如何获得下一页URL的配置项,包括以下四项:
定位下一页URL开始的字符串:用于设置能够唯一定位到下一页URL开始的字符串,这样可以保证定位到下一页URL的准确性,也可以提高抓取效率。可以不设置,表示从头开始定位。
定位下一页URL结束的字符串:用于设置能够唯一定位到下一页URL结束的字符串,这样可以保证定位到下一页URL的准确性,也可以提高抓取效率。可以不设置,表示定位到整个页面结束。
定位下一页URL的外围规则表达式:用于设置缩小定位下一页URL范围的规则表达式。关于本处及本手册以下各处的“规则表达式”,参见“术语”说明。该项系统缺省设置为“<a href=.*?>.*?</a>”,一般情况下都可以解析,如发现特殊情况下一页定位方式不同的话,需调整或重新设定。该项右侧有“转义”和“检测”两个按钮,关于本处及本手册以下各处的“转义”和“检测”,参见“术语”说明。当把页面内的代码拷贝到该输入项时,点击“转义”按钮,系统会自动对输入项进行转义。注意当写好规则表达式后,不要进行转义操作,否则会将规则表达式的内容转义;对于设置完的规则表达式,可以点击“检测”按钮进行检测,系统会弹出一个新窗口,提示该规则表达式是否有效。
定位下一页URL规则表达式:获取下一页URL的规则表达式。该项系统缺省设置为“<a href=['"]?(.*?)['"]?>下一页</a>”。一般情况下都可以解析,如发现特殊情况下一页URL不同的话,需调整或重新设置。如果没有下一页链接,只有页码链接,通常可以设置为:<a href=['"]?(.*?)['"]?>$sys_current_page_no;</a>,其中标记$sys_current_page_no;表示当前页码。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“增加正文页URL及定位信息成功”页面,该页面会显示设定的各项内容。该页面有两个按钮:“URL参数配置”和“完成”,如果该正文页URL中包含参数,点击“URL参数配置”按钮,会进入“URL参数列表”页面,进而进行URL参数配置。如不需要进行URL参数配置,点击“完成”按钮,会返回“网站列表”,这样完成了该正文页的URL配置。
在页面配置“网站列表”中,选中要进行配置的网页类型为正文页的网站,点击列表页上方或下方的“URL配置”按钮,如果该正文页已经进行过URL配置,会进入“修改正文页URL及定位配置信息”页面,根据需要设置好要修改的项,具体设置方式可参照“增加正文页URL及定位配置信息”,点击“保存”按钮,如果设置正确无误,会进入“修改正文页URL及定位配置信息成功”页面,显示页面设置的内容,该页面有两个按钮:“URL参数配置”和“完成”,如果该正文页URL中包含参数,点击“URL参数配置”按钮,会进入“URL参数列表”页面,进而进行URL参数配置。如不需要进行URL参数配置,点击“完成”按钮,会返回“网站列表”。
在“网站列表”中,选中要进行配置的网页类型为列表页的网站,点击列表页上方或下方的“URL配置”按钮,如果该列表页未进行过URL配置,进入“增加列表页URL配置信息”页面;
按页面提示设置好各项,各项具体说明如下:
第一页URL:该项必须输入,设定要抓取的列表页的第一页URL地址,比如:http://www.***.cn/tech_art_list/34_4_3.html。URL中可以嵌入系统变量或URL参数,嵌入方式为:$ + 变量名称 + ;。如$sys_current_page_no;(当前页码),表示把当前页码值放置到$sys_current_page_no;所在的位置。点击右侧的“选择系统变量”按钮可以选择系统变量或URL参数,加入到URL中。
其他页URL获得方式:用来设定如何获得其他页URL,有两个选项:固定模式和动态解析。如果其他页URL比较固定,包括一些参数,可以设定为固定模式,否则应设定为动态解析方式。动态解析表示在页面中提取下一页URL,利用规则表达式解析处下一页的URL。当选择动态解析方式时,会出现解析下一页URL四个设置项:
定位下一页URL开始的字符串:用于设置能够唯一定位到下一页URL开始的字符串,这样可以保证定位到下一页URL的准确性,页可以提高抓取效率。可以不设置,表示从头开始定位。
定位下一页URL结束的字符串:用于设置能够唯一定位到下一页URL结束的字符串,这样可以保证定位到下一页URL的准确性,也可以提高抓取效率。可以不设置,表示定位到整个页面结束。
定位下一页URL的外围规则表达式:用于设置缩小定位下一页URL范围的规则表达式。本项可以不设置,表示直接使用“定位下一页URL规则表达式”即可解析出下一页URL。
定位下一页URL规则表达式:用于设置解析下一页URL的规则表达式,该项必须设定。
其他页URL:设定要抓取的列表页的其他页URL地址,如果不设置表示无其他页,只抓取第一页。当“其他页URL获得方式”为“动态解析”时,该项必须输入。输入内容如:$1、$2等,其中$1代表规则表达式中匹配到的第一组值(第一对括号中匹配到的值),$2代表规则表达式中匹配到的第二组值。当“其他页URL获得方式”为“固定模式”时,点击右侧的“选择系统变量”按钮可以选择系统变量或URL参数,加入到URL中。
提取hidden参数的form名称:用于自动提取该form中的hidden参数及参数值,如果不需要提取,请不要输入。
提取的hidden参数名称:多个参数名之间用西文逗号分隔,为空表示提取指定form中的所有hidden参数。只有指定了提取hidden参数的form名称时,本字段才有意义。
提取hidden参数的页面:只从第一页中提取hidden参数,还是从上一页提取hidden参数。当下一页的URL中包含页码或记录号时,通常应设置为“只从第一页中提取”,以提高系统的处理效率。对于一些特殊的列表页(例如:下一页URL中没有包含页码或记录号),此时需要从上一页中动态提取hidden参数,本数据项应设置为“从上一页提取”。只有指定了提取hidden参数的form名称时,本字段才有意义。
起始页号:用于设定该列表页的起始基准页号,取值通常为0或1。基于0的情况下,第一页的页号为0,第二页的为1,以此类推。本项的缺省值为1,表示按页码的自然顺序。此项必须设定。
起始行号:用于设定该列表页的起始基准行号,取值通常为0或1,缺省值为1。解释参见上面的“起始页号”。此项必须设定。
第一页的调用方式:用来设定第一页请求的处理方式,有两个选项:POST和GET,通常应设置为GET。
其他页的调用方式:用来设定其他页或下一页请求的处理方式,有两个选项:POST和GET,通常应设置为GET。
是否是总页数标记:用来设定是总页数还是总记录数的标记。“总页数”表示是总页数标记,“总记录数”表示是总记录数标记。
定位记录数或总页数的规则表达式:用于设置解析总记录数或总页数的规则表达式。当“是否是总页数标记”设置为总记录数时,本项用于设置解析总记录数的规则表达式;“是否是总页数标记”设置为总页数时,本项用于设置解析总页数的规则表达式。
是否允许跳页:用来设定列表页是否可以跳页,“可以”表示可以跳页,“不可以”表示不能跳页。此项用于设定断点续抓。可以跳页的情况下,可以直接跳到上次抓取到的下一页继续抓取,提高了处理效率,否则只能一页一页地翻到目标页。例如,列表页上次抓到了第10页就停止了。重新开始抓取从第11页开始,但有的网站不允许你直接到第11页,必须一页一页的翻到第11页,这里就只能设定“不可以”跳页。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“增加列表页URL配置信息成功”页面,该页面会显示设定的各项内容。该页面有两个按钮:“URL参数配置”和“完成”,如果该列表页URL中包含参数,点击“URL参数配置”按钮,会进入“URL参数列表”页面,进而进行URL参数配置。如不需要进行URL参数配置,点击“完成”按钮,会返回“网站列表”,这样完成了该列表页的URL配置。
在“网站列表”中,选中要进行配置的网页类型为列表页的网站,点击列表页上方或下方的“URL配置”按钮,如果该列表页已经进行过URL配置,会进入“修改列表页URL配置信息”页面,根据需要设置好要修改的项,具体设置方式可参照“增加列表页URL配置信息”,点击“保存”按钮,如果设置正确无误,会进入“修改列表页URL配置信息成功”页面,显示页面设置的内容,该页面有两个按钮:“URL参数配置”和“完成”,如果该列表页URL中包含参数,点击“URL参数配置”按钮,会进入“URL参数列表”页面,进而进行URL参数配置。如不需要进行URL参数配置,点击“完成”按钮,会返回“网站列表”。
在增加URL配置信息完成或修改URL配置信息时,会出现“URL参数配置”按钮,如果需要配置URL参数,点击该按钮进入“URL参数列表”页面。在该列表的上方和下方各有一排按钮,点击“新增”按钮,进入“增加URL参数”页面;选中一条记录,点击“删除”按钮会提示是否删除该项,确定后即删除该URL参数。列表右侧“操作”栏目,中有“修改”链接,对于“参数取值类型”为离散值的参数,还会显示“设置参数值”链接:点击“修改”按钮进入“修改URL参数”页面;点击“设置参数值”按钮进入“URL参数值列表”页面,进行参数值的增加、修改、删除操作。
在“URL参数列表”中,点击列表页上方或下方的“新增”按钮,进入“增加URL参数”页面;
按页面提示设置好各项,各项具体说明如下:
参数名称:该项必须输入,设定页面中需要用到的参数名称,如province(省份)、(城市)等。参数名称中允许的字符包括:字母、数字、_(下划线)、-(减号)和.(点)。
参数说明:该项可以不设,主要是为了说明该参数的用途,便于理解和维护。
参数取值类型:用来设定该参数如何取值,有两个选项:有序值和离散值。如果是“离散值”,在增加URL参数完成后,还要“设置URL参数值”;如果是“有序值”时,下面会出现有序值设置数据项,包括以下四项:
信息ID起始值:用于设置该有序值参数的起始值,该项必须输入。
递增值:用于设置该有序值参数的递增值,也叫循环步长。设定为0时,表示只抓取一次。该项必须输入。
信息ID终止值:用于设置该有序值参数的终止值。设定为0时,表示没有最终值,对应的循环为无限循环。该项必须输入。
循环顺序:用于设置该参数的循环顺序。多个参数时,顺序值小的为外层循环(大循环),大的为内层循环(小循环)。该项必须设定。
是否URL参数:用来设定该项是否应用于页面URL参数中,“是”表示添加到URL参数中,“否”表示不添加。通常都应该是URL参数。
是否有效:用来设定该参数是否生效。“有效”系统使用本参数,“无效”表示不使用本参数。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“增加URL参数信息成功”页面,该页面会显示设定的各项内容。如果“参数取值类型”为“离散值”,该页面会有两个按钮:“设置URL参数值”和“完成”,点击“设置URL参数值”按钮,会进入“URL参数值列表”页面,进而进行URL参数值配置。如果“参数取值类型”为“有序值”,页面只有一个“完成”按钮,点击“完成”按钮,会返回“URL参数列表”,这样完成了增加URL参数配置,“URL参数列表”中会显示刚刚增加的URL参数。
- 修改URL参数
在“URL参数列表”中,点击列表页右侧“操作”栏中的“修改”链接,会进入“修改URL参数信息”页面,根据需要设置好要修改的项,具体设置方式可参照“增加URL参数信息”,其中“参数取值类型”不能修改,点击“保存”按钮,如果设置正确无误,会进入“修改URL参数信息成功”页面,显示页面设置的内容,如果“参数取值类型”为“离散值”,该页面会有两个按钮:“设置URL参数值”和“完成”,点击“设置URL参数值”按钮,会进入“URL参数值列表”页面,进而进行URL参数值配置。如果“参数取值类型”为“有序值”,页面只有一个“完成”按钮,点击“完成”按钮,会返回“URL参数列表”,这样完成了修改URL参数配置,“URL参数列表”中会显示刚刚修改的URL参数。
- 删除URL参数
在“URL参数列表”中,选中一条记录,点击列表页上方或下方的“删除”按钮,系统会提示确认信息,确定后删除该条URL参数记录,如果未选中记录,系统会提示选中要删除的记录。
有三种方式可以进入“设置参数值”页面:
- “增加URL参数”完成后,如果“参数取值类型”为“离散值”,点击“增加URL参数信息成功”页面上的“设置参数值”按钮
- “修改URL参数”时,如果“参数取值类型”为“离散值”,点击“设置参数值”按钮
- 在“URL参数列表”中,如果URL参数取值类型为“离散值”,在列表页右侧“操作”栏中会有的“设置参数值”链接,点击该链接
执行以上任何一种操作后,进入“URL参数值列表”页面,在该列表页面的上方和下方各有一排按钮,点击“新增”按钮,进入“增加URL参数值”页面;点击“批量增加”按钮,将进入“批量增加参数值”页面。
选中一条记录,点击“删除”按钮会提示是否删除该项,确定后即删除该URL参数值。列表右侧“操作”栏目,中有“修改”链接,点击该链接进入“修改URL参数值”页面。URL参数值设定完成后,可以点击导航条或页面上方的菜单进行其他配置。
在“URL参数值列表”中,点击列表页上方或下方的“新增”按钮,进入“增加URL参数值”页面。
按页面提示设置好各项,各项具体说明如下:
参数取值:该项必须输入,根据页面情况设定对应参数的取值,如:省份名称。
参数说明:该项可以不设,主要是为了说明该参数值的用途,便于维护和使用。
显示顺序:用于设置该参数的显示顺序,循环时按显示顺序升序遍历参数值。该项必须设定。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“增加URL参数值信息成功”页面,该页面会显示设定的各项内容。该页面有一个“完成”按钮,点击“完成”按钮,会返回“URL参数值列表”,这样完成了增加URL参数值配置,“URL参数值列表”中会显示刚刚增加的URL参数值。
- 批量增加URL参数值
在“URL参数值列表”中,点击列表页中的“批量增加”按钮,进入“批量增加URL参数值”页面。
页面中的各项数据项说明如下:
批量参数取值:该项必须输入。需要循环的字符书写为:[起始字符-终止字符],不需要循环的字符原样书写。循环的字符只能是字母a-z、A-Z或数字0-9中的全部或一部分,字符取值范围中的小写字母、大写字母和数字不能交叉,如果取值范围交叉,则不是有效的循环,将保持原样。正确的带循环参数值如:[a-z]、column[1-9],不正确的循环参数值如:[a-Z]、[A-9]。批量参数值中可以嵌入一个或多个字符循环,允许不带字符循环,此时等价于增加单个参数值。带两个循环的例子如:[a-d]-[1-3],入库时生成的参数值共12个:a-1、a-2、a-3、b-1、b-2、b-3、c-1、c-2、c-3、d-1、d-2和d-3。
点击“新增”按钮,如果设置无误,会显示“增加批量URL参数值信息成功”页面,并提示总共入库了多少个URL参数值。
- 修改URL参数值
在“URL参数值列表”中,点击列表页右侧“操作”栏中的“修改”链接,会进入“修改URL参数值信息”页面,根据需要设置好要修改的项,具体设置方式可参照“增加URL参数值”,点击“保存”按钮,如果设置正确无误,会进入“修改URL参数值信息成功”页面,显示页面设置的内容,该页面有一个“完成”按钮,点击“完成”按钮,会返回“URL参数值列表”,这样完成了修改URL参数值配置,“URL参数值列表”中会显示刚刚修改的URL参数值。
- 删除URL参数值
在“URL参数值列表”中,选中一条记录,点击列表页上方或下方的“删除”按钮,系统会提示确认信息,确定后删除该条URL参数值记录,如果未选中记录,系统会提示选中要删除的记录。
在“页面配置”的“网站列表”页面,选中要进行配置的网站,点击列表页上方或下方的“定位信息设置”按钮,如果未选中要进行配置的网站,系统会提示“请选择要配置定位信息的页面”,选中后,系统会根据所选中网站的网页类型、是否已经进行过定位信息设置,进入不同的操作页面:
- 网页类型是正文页,“URL配置”和“定位信息设置”是相同的处理页面
未进行URL配置或定位信息配置的,进入“增加正文页URL及定位配置信息”页面;
已经进行过URL配置或定位信息配置的,进入“修改正文页URL及定位配置信息”页面;
- 网页类型是列表页,
未进行定位信息配置的,进入“增加列表页定位配置信息”页面;
已经进行过定位信息配置的,进入“修改列表页定位配置信息”页面;
在“网站列表”中,选中要进行定位配置的网页类型为列表页的网站,点击列表页上方或下方的“定位信息设置”按钮,如果该列表页未进行过定位信息设置,进入“增加列表页定位配置信息”页面;
按页面提示设置好各项,各项具体说明如下:
每页显示的记录数:设定每个列表页的记录数(数据行数)。对于类型为列表页的入口页,正数N表示如果其中一页的记录数小于N,则不再抓取和处理下一页;如果为-N,则表示只要成功提取了一条记录,且存在下一页,则继续抓取和处理下一页。对于中间页面(非入口页),N表示尝试从该列表页中提取N条记录,如果没有提取到N条记录,则该次处理失败;-N表示最多提取N条记录,此时允许提取0条记录(无记录)。如果列表页包含多页,最好准确地设置每页记录数。如果只有一页,而且当记录数很多时,可以估计一个较大的数值,例如N,保证能够把页面中的所有记录处理完,推荐将记录数设置为负数-N。
在正常情况下,下级页面处理(包括页面解析和入库)出现错误,将影响本页面的处理。如果本页的记录数设置为N,因出现错误导致抓取结束;如果记录数设置为-N,且本页正确处理的记录数目大于0,则继续抓取和处理下一页(不处理本页面中的后续记录)。
记录数设置为-N时,且N>10000,表示下级页面出现页面解析错误时,继续处理本列表页中的后续记录。此时从该列表页中提取的最大记录数为:N – 10000。
注意:记录数设置为-N时的容错处理,只针对页面解析错误,而不针对(不包括)页面入库时发生的错误。
该项必须输入。
定位到列表开始的字符串:用于设置能够唯一定位到列表内容开始的字符串,这样可以保证列表内容的准确性,也可以提高抓取效率。本项可以不设置,表示从头开始定位。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--2-->表示跳过2次匹配,第3次匹配到的为列表开始位置。
定位到列表结束的字符串:用于设置能够唯一定位到列表内容结束的字符串,这样可以保证列表内容的准确性,也可以提高抓取效率,可以不设置本项,表示列表内容一直到整个页面结束。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--1-->表示跳过1次匹配,第2次匹配到的为列表结束位置。
定位到记录开始的字符串:用于设置能够唯一定位到每条记录内容开始的字符串,这样可以保证记录中数据的准确性,也可以提高抓取效率。可以不设置,不设定表示从头开始定位。如果设置了本项,“定位到记录结束的字符串”也必须设置。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--1-->表示跳过1次匹配,第2次匹配到的为记录开始位置。
定位到记录结束的字符串:用于设置能够唯一定位到每条记录内容结束的字符串,这样可以保证记录中数据的准确性,也可以提高抓取效率。可以不设置,表示定位到整个页面结束。如果设置了本项,“定位到记录开始的字符串”也必须设置。
格式为:定位字符串<!--跳过的匹配次数-->,后面的“<!--跳过的匹配次数-->”为可选项。当没有本可选项时,表示跳过的匹配次数为0。例如:<!--1-->表示跳过1次匹配,第2次匹配到的为记录结束位置。
跳过的记录数目:用于设定该列表页跳过多少条记录后开始抓取记录内容,缺省为0,表示不跳过。通常用于跳过表头(此时应设置为1)。此项必须设定。
是否重新抓取:用来设定对于抓取过的页面是否重新抓取。“是”表示重新抓取,“否”表示不重新抓取。
是否需要unescape解码:如果页面内容使用javascript escape编码,需要进行unescape解码。这种情况下页面调用javascript的函数unescape解码,为了获得解码后的内容,需要把本项设置为“是”。
可接受的页面URL连续重复次数:抓取页面过程中,URL连续重复时,继续尝试的抓取次数。假设其取值为N,如果实际的连续URL重复次数大于N,则不再继续抓取。一旦一个网页的URL不重复,实际的URL连续重复次数从零开始重新计数。本项的缺省值为0,表示碰到已抓取过的网页,就停止抓取。该项必须输入且不小于零。
可接受的入库连续失败次数:抓取网页过程中,入库连续失败时,继续尝试的抓取次数。假设其取值为N,如果实际的入库连续失败次数大于N,则不再继续抓取。一旦一个网页成功入库,实际的入库连续失败次数从零开始重新计数。本项的缺省值为0,表示入库一旦失败,就停止抓取。该项必须输入且不小于零。
设置好页面各项以后,点击“新增”按钮,如果设置无误,会显示“增加列表页定位配置信息成功”页面,该页面会显示设定的各项内容。该页面有一个“完成”按钮,点击该按钮,会返回页面配置的“网站列表”,这样完成了该列表页的定位配置。
未完待续。。。