python分布式爬虫--房天下

发布时间:2019-04-22 22:13:08编辑:auto阅读(2433)

    第一步安装redis

    redis在windows系统中的安装与启动:

    1. 下载:redis官方是不支持windows操作系统的。但是微软的开源部门将redis移植到了windows上。因此下载地址不是在redis官网上。而是在github上:https://github.com/MicrosoftArchive/redis/releases。
    2. 安装:点击一顿下一步安装就可以了。
    3. 运行:进入到redis安装所在的路径然后执行redis-server.exe redis.windows.conf就可以运行了。
    4. 连接:redismysql以及mongo是一样的,都提供了一个客户端进行连接。输入命令redis-cli(前提是redis安装路径已经加入到环境变量中了)就可以连接到redis服务器了。

    其他机器访问本机redis服务器:

    想要让其他机器访问本机的redis服务器。那么要修改redis.conf的配置文件,将bind改成bind [自己的ip地址或者0.0.0.0],其他机器才能访问。
    注意:bind绑定的是本机网卡的ip地址,而不是想让其他机器连接的ip地址。如果有多块网卡,那么可以绑定多个网卡的ip地址。如果绑定到额是0.0.0.0,那么意味着其他机器可以通过本机所有的ip地址进行访问。

    redis的操作

    redis的操作可以用两种方式,第一种方式采用redis-cli,第二种方式采用编程语言,比如PythonPHPJAVA等。

    1. 使用redis-cliredis进行字符串操作:

    2. 启动redis

        sudo service redis-server start
      
    3. 连接上redis-server
        redis-cli -h [ip] -p [端口]
      
    4. 添加:

        set key value
        如:
        set username xiaotuo
      

      将字符串值value关联到key。如果key已经持有其他值,set命令就覆写旧值,无视其类型。并且默认的过期时间是永久,即永远不会过期。

    5. 删除:

        del key
        如:
        del username
      
    6. 设置过期时间:

        expire key timeout(单位为秒)
      

      也可以在设置值的时候,一同指定过期时间:

        set key value EX timeout
        或:
        setex key timeout value
      
    7. 查看过期时间:

        ttl key
        如:
        ttl username
      
    8. 查看当前redis中的所有key

        keys *

    第二步创建项目

    第三步设置settings.py文件

     

    在middlewares.py文件添加以下内容

    # -*- coding: utf-8 -*-
    
    # Define here the models for your spider middleware
    #
    # See documentation in:
    # http://doc.scrapy.org/en/latest/topics/spider-middleware.html
    
    import random
    
    class UserAgentDownloadMiddleware(object):
        # user-agent随机请求头中间件
        USER_AGENTS = [
            'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
            'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;',
            'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv,2.0.1) Gecko/20100101 Firefox/4.0.1',
            'Mozilla/5.0 (Windows NT 6.1; rv,2.0.1) Gecko/20100101 Firefox/4.0.1'
        ]
        def process_request(self,request,spider):
            user_agent = random.choice(self.USER_AGENTS)
            request.headers['User-Agent'] = user_agent

     

关键字