scrapy整合hbase爬取数据并存入hbase

在网上看了大篇的帖子都是关于scrapy与mongodb、mysql、redis等集成的文章,唯独没有看到scrapy与hbase整合的文章。今天动手实验了一下,整理成本篇博文,分享给大家。

scrapy爬取数据的例子网上很多,本人在此就不再赘诉了。

此处只着重描写scrapy如何入库至hbase。

本文主要通过HappyBase操作hbase。

HappyBase 是 FaceBook 员工开发的操作 HBase 的 Python 库,其基于 Python Thrift,但使用方式比 Thrift 简单、简洁许多,已被广泛应用。

1、安装happybase
pip install happybase

2、启动hbase thrift服务
nohup hbase thrift -p 9090 start &

3、在scrapy项目下setting.py文件中定义HBASE_HOST 和HBASE_TABLE

    HBASE_HOST = '192.168.22.15'
    HBASE_TABLE = 'novel'

4、在pipelines.py中编写Hbase入库的Pipeline

class NovelHBasePipeline(object):
    def __init__(self):
        host = settings['HBASE_HOST']
        table_name = settings['HBASE_TABLE']
        connection = happybase.Connection(host)
        table = connection.table(table_name)
        self.table = table

    def process_item(self, item, spider):
        bookName = item['bookName']
        bookTitle = item['bookTitle']
        chapterURL = item['chapterURL']

        self.table.put(md5(bookName + bookTitle).hexdigest(),
                       {'cf1:bookname': bookName, 'cf1:booktitle': bookTitle, 'cf1:chapterurl': chapterURL})
        return item

5、在setting.py文件中配置编写的Pipeline

ITEM_PIPELINES = {
    'novelspider.pipelines.NovelspiderPipeline': 500,
    'novelspider.pipelines.NovelHBasePipeline': 1
}

至此,所有的整合工作已经完成,即可运行您的spider爬取数据并存至hbase。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值