java Gecco的爬虫框架的使用

Gecco是一款用java语言开发的轻量化的易用的网络爬虫。
主要特征:
简单易用,使用jquery的selector风格抽取元素
支持页面中的异步ajax请求
支持页面中的javascript变量抽取
利用Redis实现分布式抓取,参考gecco-redis
支持下载时UserAgent随机选取
支持下载代理服务器随机选取
支持结合Spring开发业务逻辑,参考gecco-spring
支持htmlunit扩展,参考gecco-htmlunit
支持插件扩展机制
GeccoEngine基本配置项
loop(true):表示是否循环抓取,默认为false
thread(2):表示开启的爬虫线程数量,默认是1,需要注意的是线程数量要小于或者等于start请求的数量
interval(2000):表示某个线程在抓取完成一个请求后的间隔时间,单位是毫秒,系统会在左右1秒时间内随机。如果为2000,系统会在1000~3000之间随机选取。
mobile(false):表示使用移动端还是pc端的UserAgent。默认为false使用pc端的UserAgent。
debug(true):是否开启debug模式,如果开启debug模式,会在控制台输出jsoup元素抽取的日志。
start():非阻塞启动,GeccoEngine会单独启动线程运行,推荐以该方式运行
run():阻塞启动,GeccoEngine在主线程中启动运行,非循环模式GeccoEngine需要等待其他爬虫线程运行完毕后才会退出。
模糊匹配:
@Gecco(matchUrl=“https://github.com/{user}/{project}”)
内容抓取:
@HtmlField
html属性定义,表示该属性是通过html查找解析,在html的渲染器下使用
cssPath:jquery风格的元素选择器,使用jsoup实现。jsoup在分析html方面提供了极大的便利。计划实现xpath风格的元素选择器。
@Href
表示该字段是一个链接类型的元素,jsoup会默认获取元素的href属性值。属性必须是String类型。
value:默认获取href属性值,可以多选,按顺序查找
click:表示是否点击打开,继续让爬虫抓取
@Image
表示该字段是一个图片类型的元素,jsoup会默认获取元素的src属性值。属性必须是String类型。
value:默认获取src属性值,可以多选,按顺序查找
download:表示是否需要将图片下载到本地
@Attr
获取html元素的attribute。属性支持java基本类型的自动转换。
value:表示属性名称
@Text
获取元素的text或者owntext。属性支持java基本类型的自动转换。
own:是否获取owntext,默认为是
@Html
默认类型,可以不写,获取html元素的整个节点内容。属性必须是String类型
@Ajax(url=“http://p.3.cn/prices/mgets?skuIds=J_{code}”)
异步获取接口数据
@JSONPath("$.p[0]")
使用fastjson的jsonpath,jsonpath类似是一种对象查询语言,能方便的查询json中个字段的值
@JSVar
var:表示变量名
jsonpath:如果变量是json格式的数据,通过定义jsonpath抽取需要的内容,如果不是json格式的数据可以不填
@Request
将httpRequest信息注入到java bean中。
@RequestParameter
将url中定义的变量注入到java bean中
@FieldRenderName(“jdPricesFieldRender”)
通过实现CustomFieldRender接口可以实现自定义的注解。

爬虫引擎创建方式:

@Autowired
SpringPipelineFactory springPipelineFactory;
//processClassPath 具体的spiderBean解析地址
GeccoEngine.create().pipelineFactory(springPipelineFactory).classpath(processClassPath).proxy(false)
                // 开始抓取的页面地址
                .start(request)
                // 开启几个爬虫线程
                .thread(50)
                // 单个爬虫每次抓取完一个请求后的间隔时间
                .interval(1000).run();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值