GuozhongCrawler系列教程 (5) TransactionRequest详解
2015-06-09 00:00
453 查看
摘要: GuozhongCrawler的是一个无须配置、便于二次开发的爬虫开源框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。模块化设计完全面向业务提供接口,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试,定制执行js、自定义cookie等功能。在处理网站抓取多次后被封IP的问题上,GuozhongCrawler采用动态轮换IP机制有效防止IP被封。另外,源码中的注释及Log输出全部采用通俗易懂的中文。让初学者能有更加深刻的理解
为了实现和维护并发抓取的属性信息提供线程安全的事务请求。TransactionRequest是一个抽象类自己不能设置Processor,却需要实现 TransactionCallBack接口。TransactionRequest是个复合的BasicRequest。他可以将多个PageRequest、BinaryRequest甚至TransactionRequest 自己的对象添加到child集合中,在下载过程中首先下载TransactionRequest中的所有childRequest,每个childRequest下载完成后使用notify方式逐步向上通知, 直到所有的child下载完成TransactionRequest回调 TransactionCallBack的callBack方法通知业务层这个TransactionRequest下载完成。
设置属性
指定者:
返回:
返回BasicRequest对象自身
取得属性
指定者:
返回:
返回attribute属性对应的value。没有则返回null
参数:
返回:
当子url或者当前url完成的时候回调
覆盖:
参数:
为了实现和维护并发抓取的属性信息提供线程安全的事务请求。TransactionRequest是一个抽象类自己不能设置Processor,却需要实现 TransactionCallBack接口。TransactionRequest是个复合的BasicRequest。他可以将多个PageRequest、BinaryRequest甚至TransactionRequest 自己的对象添加到child集合中,在下载过程中首先下载TransactionRequest中的所有childRequest,每个childRequest下载完成后使用notify方式逐步向上通知, 直到所有的child下载完成TransactionRequest回调 TransactionCallBack的callBack方法通知业务层这个TransactionRequest下载完成。
方法详细资料
getPipeline
public Pipeline getPipeline()
setPipeline
public void setPipeline(Pipeline pipeline)
addAttribute
public BasicRequest addAttribute(java.lang.String attribute, java.lang.Object value)从类复制的说明:
BasicRequest
设置属性
指定者:
addAttribute在类中
BasicRequest
返回:
返回BasicRequest对象自身
getAttribute
public java.lang.Object getAttribute(java.lang.String attribute)从类复制的说明:
BasicRequest
取得属性
指定者:
getAttribute在类中
BasicRequest
返回:
返回attribute属性对应的value。没有则返回null
addChildRequest
public void addChildRequest(BasicRequest request)添加一个BasicRequest到TransactionRequest的child中
参数:
request-
iteratorChildRequests
public java.util.Iterator<BasicRequest> iteratorChildRequests()返回这个TransactionRequest所有child的迭代器
返回:
notify
public void notify(int hashcode)从类复制的说明:
BasicRequest
当子url或者当前url完成的时候回调
覆盖:
notify在类中
BasicRequest
参数:
hashcode- 实际Request的hashCode
checkComplete
public void checkComplete()检查是否所有的Request标记都不是false。如果是那么所有的Request已经请求完成和处理。
相关文章推荐
- GuozhongCrawler开发环境搭建
- GuozhongCrawler实现一个完整爬虫
- GuozhongCrawler所有核心操作类及层次图
- GuozhongCrawler爬虫简易流程图
- GuozhongCrawler git地址
- GuozhongCrawler系列教程 (1) 三大PageDownloader
- GuozhongCrawler系列教程 (2) CrawTaskBuilder详解
- GuozhongCrawler看准网爬虫动态切换IP漫爬虫
- iOS开发UI之日期控件的使用(UIDatePicker)
- DuiVision开发教程(15)-DUI文字控件基础类
- 利用NGUI组件简单识别滑动屏幕操作
- git gui 无法获取你的身份 处理办法
- 使用APKTool+dex2jar+jd_gui反编译apk文件
- SVN quick guide
- 黑马程序员——Java基础—GUI
- OC中的NSValue
- 同一项目中的广播(音乐播放进度的UI跟新)
- Halcon 学习总结——邮票目录检测(stamp_catalogue)
- Quartz 2D 简单使用
- java PriorityBlockingQueue 基础的优先级队列,可阻塞的读取操作.