sprapy分布式爬蟲簡要步驟

2021-08-21 12:49:51 字數 2698 閱讀 3319

scrapy_redis:第三方庫實現分布的部署

分布式爬蟲: 只需要在眾多電腦中, 選擇其中一台開啟redis服務, 目的就是在redis中建立公用的queue和公用的set, 然後剩餘電腦只需要連線redis服務即可,剩餘電腦不需要開啟redis-server服務。

1>在虛擬環境中安裝pip install redis

2>去github上搜尋scrapy_redis庫,解壓,儲存到專案根目錄下。根據提供的用例,配置我們的專案,大致三部分:

1.settings.py檔案;

scheduler = "scrapy_redis.scheduler.scheduler"

dupefilter_class = "scrapy_redis.dupefilter.rfpdupefilter"

# item_pipelines: 可設定也可不設定

item_pipelines =

# myroot: 自定義的redis鏈結。ip:開啟redis-server服務的這台電腦的ip

redis_url = 'redis://myroot:@本機ip:6379'

本機ip: 可通過在cmd中輸入命令ipconfig查詢

2.jobbole.py檔案;

from scrapy_redis.spiders import redisspider

class jobbolespider(redisspider):

name = 'jobbole'

allowed_domains = ['jobbole.com']

# start_urls = ['']

# 新增鍵

redis_key = 'jobbole:start_urls'

3.有關資料庫部分;

執行mysql -uroot -p 會提示mysql不是內部或外部命令--->需要將mysql.exe的路徑新增到環境變數中

(如果新增成功以後沒起作用,那就重啟電腦吧)

安裝mysql的時候,預設生成的使用者root只有本地登入許可權localhost,如果需要遠端連線mysql,需要分配乙個擁有遠端連線許可權的新使用者。

第一步:通過mysql -uroot -p登入mysql服務。

第二步:通過grant all privileges on *.*  to 'myroot'@'%' identified by '123456';(注意一定要帶上分號)。

# *.* 表示所有資料庫中的所有表,都能夠被遠端連線

# '%' 表示任意ip都可以進行鏈結

# 'myroot' 具有遠端鏈結許可權的使用者名稱,自定義。之後就使用這個user進行鏈結資料庫

mysql->grant all privileges on *.*  to 'myroot'@'%' identified by '123456';  回車即可。

第三步:再去修改爬蟲專案中有關資料庫的配置。

mysql_host = '192.168.40.217'

mysql_dbname = 'article_db'

mysql_user = 'myroot'

mysql_password = '123456'

mysql_charset = 'utf8'

注意: 需要自己建立乙個新的資料庫連線

3>將配置好的專案,拷貝到不同的機器中;

4>選擇其中一台機器,開啟redis-server服務,並修改redis.windows.conf配置檔案:

# 配置遠端ip位址,供其他的電腦進行連線redis

bind: (當前電腦ip) 192.168.40.217

# 關閉redis保護模式

(修改redis.windows-service.conf中的應該是也可以的)

執行爬蟲專案:

可在scheduler.py中加斷點

啟動redis: redis-server --service-install redis.windows.conf

爬蟲 分布式爬蟲

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

分布式爬蟲

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

分布式爬蟲

修改普通爬蟲專案為分布式爬蟲 1.主爬蟲檔案myspider.py 做如下修改,其他不做修改 import scrapy from items import myitem 匯入資料模型 from scrapy redis.spiders import redisspider 匯入scrapy red...