爬虫下载地址: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
?
?
示例二下载地址: http://www.box.net/shared/9oj43jy0lj