WebCrawler实例配置(二)

爬虫下载地址:http://anson2003.iteye.com/blog/385344

 

如何抓取图片(Binary) 到本地

 

 

在配置中选择Binary  字段类型 所有的 Binary 下载下来之后自动重命名为 MD5(url).b

存储位置和下载地址分别都在映射表达式里指定 最多尝试 3 次抓取。

 

如抓取baidu Logo:

<img src=http://www.baidu.com/img/baidu_logo.gif width=270 height=129 usemap="#mp" id=lg>

 

Regex表达式为 : <img src=([^\s]+)  

 

在配置工具中: {d:\a||$1}<img src=([^\s]+) 

 

表示下载Logo d:\a 目录下, ||  表示存储路径和抓取的图片路径的变量分割符。 {} 表示对数据的补充说明。

 

详细见附件示例。

 

 

如何在组中引用其他字段,隐含字段的使用

 

在同一个组的配置当中,如果有一个字段需要依赖另外一个字段。只要在映射表达式中加入:

$[引用字段名 ]

 

2个隐含字段  $[PAGE_URL],$[PAGE_SOURCE]

 

$[PAGE_SOURCE]  2 种情况,如果有“循环块”的时候,此时该值为循环块取出来的部分数据,如果无循环块为当前页面的所有 HTML

$[PAGE_URL]:当前处理的 URL 地址,此地址为全路径。

 

 

如何配置自动分页

 

比如你入口地址只配置了一页,那你可以定义一个分页组(就是找到“下一页”的地方,然后把该取出来的值定义为Url 类型字段)。 这里有些网站始终都有下一页,而且每个下一页的地址都没报错(下一页Url 都不一样)。导致爬虫一直抓取下去。

 

何为URL 类型字段:就是会告诉爬虫我要抓取这个 URL ,简单的说,自动把 URL 加入爬虫抓取列表。

 

如何使用函数,如何扩展函数

 

 

函数使用:

 

$fn:functionName([param1||param2||.......])

 

必须有返回值,返回值会自动被toString(), 参数必须为 string 类型。

 

默认被注册的方法有 apache common-lang StringUtils 里的方法

String  sbcChang e(string) 全角转半角

String  zhNum2AlNum (string) 中文转阿拉伯数字

String regexReplace(String s, String regex, String replacement) 正则替换

String UnicodeJsToString(String s) javascript unicode 转码

String encode(String value, String charset) URL编码

String decode(String value, String charset) URL解码

String md5(String value)  MD5

String to64(String value) base64编码

String de64(String value) base64解码

String cl(String s)  清除html tag

 

 

如何扩展:

 

conf 目录下新增一个  function.conf  的properties 文件 , 加入你自己的类 :

 

o bject. 1 =  com.tmp.Test1

 

#注册 Test1 所有的带有 string 参数的所有静态方法,和实例化之后的所有带 string 参数的函数。

 

static.1 = com.tmp.Test2

 

#注册 Test2 所有的带有 string 参数的所有静态方法

 

# object.     static. 前缀的属性值里的类的方法都会被注册到爬虫里。

 

 

连接池支持(减少数据库连接次数)

 

在WebCrawler.bat中,加入启动参数: -Dsupport_ds=1

 

 

示例二下载地址: https://www.box.com/shared/9oj43jy0lj

你可能感兴趣的:(JavaScript,apache,html,.net,正则表达式)