美文网首页
分布式爬虫爬取知乎用户—redis篇

分布式爬虫爬取知乎用户—redis篇

作者: karyuet | 来源:发表于2018-02-27 14:31 被阅读0次

    使用redis作为缓存存储爬取下来的关注用户列表,使用redis set集合还有一个好处是可以自动去重。

    我打算用五个集合,分别是waiting_set(等待爬取)、success_info(信息爬取成功)、failed_info(信息爬取失败)、success_list(关注列表爬取成功)、failed_list(关注列表爬取失败)、

    首先需要用python连接redis(连接前需将redis服务开启)

    import redis

    r = redis.Redis('localhost','6379','db0')


    然后可以使用r.sadd('key','value')将urlToken添加到set集合中

    使用s.spop('key')可以从集合中随机取出一个urlToken,爬取其用户信息,如果成功将其放入success_info集合,将用户信息存入mongdb数据库,否则放入failed_info

    使用另外一个进程爬取其关注者列表,如果成功放入success_list集合否则放入failed_list集合。

    注意:

    redis默认开启保护模式,连接redis 时只能通过本地localhost (127.0.0.1)这个来链接,而不能用网络ip(192.168..)这个链接,如果用网络ip 链接会报以下错误。

    "DENIED Redis is running in protected mode"

    解决方法如下:

    修改配置文件 redis.conf。

    1. 打开配置文件把下面对应的注释掉

    # bind 127.0.0.1

    2. 关闭保护模式

    protected-mode no

    3. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no

    daemonize no

    然后使用配置文件启动redis即可成功远程访问

    $ redis-server redis.conf

    参考文章:   python操纵redis set集合

    相关文章

      网友评论

          本文标题:分布式爬虫爬取知乎用户—redis篇

          本文链接:https://www.haomeiwen.com/subject/xitmxftx.html