GuozhongCrawler系列教程 (4) StartContext详解

来源:互联网 发布:软件白名单 编辑:程序博客网 时间:2024/06/17 15:38


  StartContext是注入时所有seed的上下文信息如果爬虫在抓取过程当中需要共享一些变量。那么可使用StartContext作为容器。

构造器详细资料

  • StartContext

    public StartContext()
    构造一个StartContext。通常用来充当seedRequest的容器
  • StartContext

    public StartContext(java.lang.String url,            java.lang.Class<? extends PageProcessor> processorCls)
    构造一个StartContext。并且加入一个种子URL
    参数:
    url -
    processorCls -
  • StartContext

    public StartContext(java.lang.String url,            java.lang.Class<? extends PageProcessor> processorCls,            PageRequest.PageEncoding pageEncoding)
    构造一个StartContext。并且加入一个种子URL
    参数:
    url -
    processorCls -
    pageEncoding - URL对应网页的编码

方法详细资料

  • createPageRequest

    public PageRequest createPageRequest(java.lang.String url,                            java.lang.Class<? extends PageProcessor> processorCls)
    创建网页下载请求PageRequest
    参数:
    url - 这个请求对应的http或者https 地址
    processorCls - 下载完成后处理这个网页Page的PageProcessor的class对象
    返回:
    PageRequest
  • createPageRequest

    public PageRequest createPageRequest(java.lang.String url,                            java.lang.Class<? extends PageProcessor> processorCls,                            int priority,                            PageRequest.PageEncoding pageEncoding)
    创建网页下载请求PageRequest
    参数:
    url - 这个请求对应的http或者https 地址
    processorCls - 下载完成后处理这个网页Page的PageProcessor的class对象
    priority - 设置这个PageRequest的priority。需要注意的只有使用crawTaskBuilder.useQueuePriorityRequest或者crawTaskBuilder.useQueueDelayedPriorityRequest的时候 priority才会起作用并排序。
    pageEncoding - 这个PageRequest对应URL的网页编码格式。如果不指定那么会用crawTaskBuilder中指定的usePageEncoding。如果crawTaskBuilder没有 使用usePageEncoding。则默认用UTF-8编码
    返回:
    PageRequest
  • createPageRequest

    public PageRequest createPageRequest(java.lang.String url,                            java.lang.Class<? extends PageProcessor> processorCls,                            int priority)
    创建网页下载请求PageRequest
    参数:
    url - 这个请求对应的http或者https 地址
    processorCls - 下载完成后处理这个网页Page的PageProcessor的class对象
    priority - 设置这个PageRequest的priority。需要注意的只有使用crawTaskBuilder.useQueuePriorityRequest或者crawTaskBuilder.useQueueDelayedPriorityRequest的时候 priority才会起作用并排序。
    返回:
    PageRequest
  • createBinaryRequest

    public BinaryRequest createBinaryRequest(java.lang.String url,                                java.lang.Class<? extends BinaryProcessor> processorCls)
    创建一个二进制下载请求
    参数:
    url - 这个请求对应的http或者https 地址
    processorCls - 文件下载时处理这个InputStream的BinaryProcessor的class对象
    返回:
    BinaryRequest
  • createTransactionRequest

    public TransactionRequest createTransactionRequest(TransactionCallBack transactionCallBack)
    创建支持事务的下载请求。
    参数:
    transactionCallBack - 事务完成后的回调接口的Class
    返回:
    TransactionRequest
  • createTransactionRequest

    public TransactionRequest createTransactionRequest(TransactionCallBack transactionCallBack,                                          BasicRequest... child)
    给定一个child集合创建支持事务的下载请求。
    参数:
    transactionCallBack - 事务完成后的回调接口
    child - child集合
    返回:
    TransactionRequest
  • injectSeed

    public void injectSeed(BasicRequest request)
    注入种子
    参数:
    request -
  • getSeedRequests

    public java.util.List<BasicRequest> getSeedRequests()
    返回该StartContext所包含的所有种子URL
    返回:

  • getContextAttribute

    public java.lang.Object getContextAttribute(java.lang.String attribute)
    返回attribute对应的value 这个方法是线程安全的
    参数:
    key -
    返回:
    返回attribute对应的value
  • putContextAttribute

    public java.lang.Object putContextAttribute(java.lang.String attribute,                                   java.lang.Object value)
    向StartContext域put一个属性值。并返回之前的attribute对应的value。如果之前没有attribute属性那么返回null。这个方法是线程安全的
    参数:
    attribute -
    value -
    返回:
    返回之前的attribute对应的value。如果之前没有attribute属性那么返回null
  • getSeedSize

    public int getSeedSize()
    返回种子URL的个数
    返回:

isEmpty

public boolean isEmpty()
返回StartContext是否为空。
返回:
0 0