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
相關文章
相關標籤/搜索