Scrapyd部署分布式爬蟲(二)

2021-10-03 06:02:19 字數 2126 閱讀 8109

上一節,我們介紹了通過scrapyd提供的 http介面來執行scrapy專案,但這個前提條件是需要事先將scrapy專案打包成egg檔案。雖然可以使用setup-tools工具實現打包,但整個過程太繁瑣。這裡介紹第三方庫scrapyd-client。它的功能主要有兩個:

pip install scrapyd-client
這裡還需要修改scrapy專案的配置檔案,在專案根目錄下有乙個scrapy.cfg檔案,修改內容如下:

[deploy:scrapyd_name]   #預設情況下並沒有scrapyd_name,它只是乙個名字target,可以在配置檔案中寫多個名字不同的deploy   

url = http://ip:port/ #要部署專案的伺服器的位址

# url = http://localhost:6800/ 正常情況這裡是注釋的,用於本地本部署

project = myspider 專案名字

username = john #訪問伺服器所需的使用者名稱和密碼(如果不需要密碼可以不寫)

password = secret

檢查scrapy配置是否正確:

scrapyd-deploy -l
首先定位到scrapy專案的根目錄,執行如下命令:

--version用來指定版本號,node_name是主機名,可有配置檔案指定。

現在就可以通過scrapyd提供的schedule.json介面啟動爬蟲程式,命令如下:

curl http://ip:port/schedule.json -d project=*** -d spider=yyy
除了這兩個引數,還有其他引數可供選擇,還支援post請求,具體如下:

有時需要根據專案的實際需求向spider傳遞引數以控制spider的行為,比如說,根據使用者提交的url來控制spider爬取的**。在這種情況下,可以使用下面方法向spider傳遞引數。

在用scrapyd控制spider的時候,可以向schedule.json傳送-d選項加入引數,同時的,也需要在spider的建構函式裡重寫。例如:

Scrapyd部署爬蟲

修改scrapy專案目錄下的scrapy.cfg檔案,修改如下 deploy jd spider 加上target name url http localhost 6800 將前面的 刪除 project jd project的名字,可以使用預設的,當然也可以改變 在任意目錄下的開啟終端,輸入scr...

Scrapyd部署爬蟲

修改scrapy專案目錄下的scrapy.cfg檔案,修改如下 deploy jd spider 加上target name url http localhost 6800 將前面的 刪除 project jd project的名字,可以使用預設的,當然也可以改變 在任意目錄下的開啟終端,輸入scr...

Scrapyd部署爬蟲

修改scrapy專案目錄下的scrapy.cfg檔案,修改如下 deploy jd spider 加上target name url http localhost 6800 將前面的 刪除 project jd project的名字,可以使用預設的,當然也可以改變 在任意目錄下的開啟終端,輸入scr...