文档章节

GuozhongCrawler系列教程 (4) StartContext详解

郭钟
 郭钟
发布于 2015/06/08 19:18
字数 940
阅读 32
收藏 0

  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是否为空。

  • 返回:


© 著作权归作者所有

共有 人打赏支持
郭钟
粉丝 17
博文 12
码字总数 7550
作品 1
北京
架构师
GuozhongCrawler实现一个完整爬虫

经过上一节开发环境搭建中的百度新闻的爬虫例子,相信大家已经对GuozhongCrawler简洁的API产生浓厚兴趣了。不过这个还不算一个入门例子。只是完成了简单的下载和解析。现在我们来完成一个比较...

郭钟
2015/04/18
0
3
MongoDB系列教程(八):GridFS存储详解

MongoDB系列教程(八):GridFS存储详解 GridFS简介 mongoDB的文档以BSON格式存储,支持二进制的数据类型,当我们把二进制格式的数据直接保存到mongoDB的文档中。但是当文件太大时,例如图片...

开元中国2015
2015/07/25
0
0
“我爱智能”原创性博客索引

不知不觉,博客也写出了一点小体系,新的阶段已经开始,未来希望再接再厉继续补充这一体系,在成长中写博客,在博客中成长,在此先做一个小的梳理,谢谢大家的支持。 一)关于深度学习系列 ...

on2way
2015/08/29
0
0
Android Studio系列教程

Android Studio系列教程一 —- 下载与安装 Android Studio系列教程二 —- 基本设置与运行 Android Studio系列教程三 —- 快捷键 Android Studio系列教程四 —- Gradle基础 Android Studio系列...

青莲居士
2015/10/09
151
0
移动开发之微信小程序——资料集合

本文转载自:知乎 有需要下载的客官可可以点击知乎去下载相关资料 一:官方地址集合: 1:官方工具:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1476434678461 2:...

DJY1992
2016/12/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 使用parent方式引用时 获取值属性方式默认@

采用官网提供的 引入依赖时,application.properties中的值变量,无法通过${}获取,这是由于Spring Boot 已经将字符方式调整为 <resource.delimiter>@</resource.delimiter>。故如果在,工程中...

翱翔fly
11分钟前
1
0
HTTPS证书验证流程及SSL证书生成步骤【附nginx开启https配置】

------------------------------------------------------------ HTTPS证书验证流程(极简化版) 1.客户端向服务端请求证书(server.crt) 2.服务端下发证书(server.crt) 3.客户端用预制的...

xiaomin0322
12分钟前
1
0
预编译sql语句和参数化sql能有效防止——sql注入攻击——

预编译和参数化处理sql原理类似: 参数化处理sql 是将参数进行了字符串化处理,把参数中的单引号,井号#,等都做了转义处理,进而在执行sql语句时不会被当做sql中的定界符和指定符来执行。 ...

fang_faye
13分钟前
1
0
springboot最全配置解释

​​​​​​​# ----------------------------------------# 核心属性# ----------------------------------------# 文件编码banner.charset= UTF-8# 文件位置banner.locati...

废柴大叔
14分钟前
57
1
(大致了解下)从单机到2000万QPS: 知乎Redis平台发展与演进之路

导读:知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能。本文作者是是该系统的负责人,文...

Ocean_K
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部