GuozhongCrawler系列教程 (5) TransactionRequest详解
博客专区 > 郭钟 的博客 > 博客详情
GuozhongCrawler系列教程 (5) TransactionRequest详解
郭钟 发表于3年前
GuozhongCrawler系列教程 (5) TransactionRequest详解
  • 发表于 3年前
  • 阅读 39
  • 收藏 0
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 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下载完成。


方法详细资料

  • getPipeline

    public Pipeline getPipeline()

  • setPipeline

    public void setPipeline(Pipeline pipeline)

  • addAttribute

    public BasicRequest addAttribute(java.lang.String attribute,
                            java.lang.Object value)

    从类复制的说明: BasicRequest

    设置属性

  • getAttribute

    public java.lang.Object getAttribute(java.lang.String attribute)

    从类复制的说明: BasicRequest

    取得属性

  • 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完成的时候回调

  • checkComplete

    public void checkComplete()

    检查是否所有的Request标记都不是false。如果是那么所有的Request已经请求完成和处理。


共有 人打赏支持
粉丝 17
博文 12
码字总数 7550
作品 1
×
郭钟
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: