分布式爬蟲

2021-08-24 20:56:33 字數 1629 閱讀 8863

修改普通爬蟲專案為分布式爬蟲

1.主爬蟲檔案myspider.py 做如下修改,其他不做修改:

import scrapy

from ..items import myitem # 匯入資料模型

from scrapy_redis.spiders import redisspider #匯入scrapy_redis模組

# 1.修改scrapy.spider為redisspider

class myspider(redisspider):

# 2.注釋start_urls,新增redis_key

redis_key = 'myspider:start_urls'

...

2.settings新增如下**:

# 1.必須. 使用scrapy_redis的去重組件,在redis資料庫裡做去重

dupefilter_class = "scrapy_redis.dupefilter.rfpdupefilter"

# 2.必須. 使用scrapy_redis的排程器,在redis裡分配請求

scheduler = "scrapy_redis.scheduler.scheduler"

# 3.可選. 在redis中保持scrapy-redis用到的各個佇列,從而允許暫停和暫停後恢復,也就是不清理redis queues

scheduler_persist = true

# redis伺服器位址

redis_host = "127.0.0.1"

# redis伺服器端口

redis_port = 6379

# 管道儲存,將資料儲存到redis裡

item_pipelines =

3.分發**,選擇一台機器作為伺服器,切換到redis安裝目錄,修改配置檔案參見,

如下命令開啟redis 資料庫伺服器

\> redis-server redis.windows.conf
4.客戶端修改settings.py檔案,將redis_host的值改為redis服務端的ip位址,

\> ipconfig
或者在settings.py檔案中新增如下**指定伺服器:

# 192.168.52.215 為伺服器ip位址, 6397 為埠號

redis_url='redis:'

bind 192.168.52.215  ----繫結伺服器ip
5.執行客戶端爬蟲程式,控制台可看到程式處於等待狀態中(伺服器也可以開啟爬蟲程式,同樣處於等待狀態),

此時在伺服器端再次開啟乙個終端,連線redis資料庫並向其中新增初始url:

\> redis-cli

127.0.0.1:6379> lpush myspider:start_urls

http://www.......

此時再次觀察伺服器終端,各個爬蟲程式終端,可觀察到程式正在爬取頁面

6.爬取到了頁面,那麼就要進行讀取檢視,可使用redis desktop manager 視覺化工具連線資料庫。

爬蟲 分布式爬蟲

爬蟲的本質 很多搞爬蟲的總愛吹噓分布式爬蟲,彷彿只有分布式才有逼格,不是分布式簡直不配叫爬蟲,這是一種很膚淺的思想。分布式只是提高爬蟲功能和效率的乙個環節而已,它從來不是爬蟲的本質東西。爬蟲的本質是網路請求和資料處理,如何穩定地訪問網頁拿到資料,如何精準地提取出高質量的資料才是核心問題。分布式爬蟲只...

分布式爬蟲

乙個基於scrapy redis的分布式爬蟲模板,在scrapy redis自帶的example的基礎上進行修改,新增在實際爬取過程中大部分爬蟲可能用到的功能,使的構建分布式爬蟲更加的簡單。scrapy redis windows ubuntu sudo apt get install redis ...

分布式爬蟲

分布式爬蟲 1 在爬蟲的settings.py中新增下面兩句話 enables scheduling storing requests queue in redis.scheduler scrapy redis.scheduler.scheduler ensure all spiders share...