python分布式爬虫--房天下

第一步安装redishtml

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地址进行访问。mysql

redis的操做

redis的操做能够用两种方式,第一种方式采用redis-cli,第二种方式采用编程语言,好比PythonPHPJAVA等。git

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

  2. 启动redisredis

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

    set key value
      如:
      set username xiaotuo

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

  5. 删除:windows

    del key
      如:
      del username
  6. 设置过时时间:服务器

    expire key timeout(单位为秒)

    也能够在设置值的时候,一同指定过时时间:dom

    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
相关文章
相关标签/搜索