1. 程式人生 > >利用scrapy-redis實現分散式爬蟲

利用scrapy-redis實現分散式爬蟲

環境要求

  • Python 2.7, 3.4 or 3.5

  • Redis >= 2.8

  • Scrapy >= 1.1

  • redis-py >= 2.10

1. 先安裝scrapy-redis

sudo pip3 install scrapy-redis

2. 安裝redis

3. 安裝 redis的視覺化工具 redis desktop manager

連線https://pan.baidu.com/s/1miRPuOC?fid=489763908155827

4. 改寫spider

#檔案為wb.py
import scrapy
from datetime import datetime
from ..items import QuestionItem, AnswerItem
from scrapy_redis.spiders import RedisSpider
import re

class WbSpider(RedisSpider):
    name = 'wb'
    allowed_domains = ['58che.com']
    # start_urls = ['https://bbs.58che.com/cate-1.html']
    redis_key = "wbSpider:start_urls"

首先是改成繼承RedisSpider,然後增加一個redis_key是爬蟲名字,同時註釋掉start_urls,同時使用Redis命令向該列表新增起始爬取點,去掉了start_requests,因為所有的爬蟲都是從redis來獲取url,所以沒有開始請求的地址了

redis-cli
lpush wbSpider:start_urls:https://bbs.58che.com/cate-1.html

5.修改setting設定

# Enables scheduling storing requests queue in redis.
ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 300
}

# Enables scheduling storing requests queue in redis.
ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 300
}

## 爬蟲資料採用redis儲存,註釋掉其他儲存設定
# Enables scheduling storing requests queue in redis.
ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 300
}

6.部署到不同的電腦上,啟動爬蟲

scrapy crawl wb