利用scrapy-redis實現分散式爬蟲
阿新 • • 發佈:2018-12-06
環境要求
-
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