1. 程式人生 > >Scrapyd 在Linux下簡單部署Scrapy爬蟲

Scrapyd 在Linux下簡單部署Scrapy爬蟲

簡單介紹

好了下面開始正式部署scrapy,

我的系統環境是redhat(Linux發行版之一和centos操作差不多)

  • 一, 安裝相關依賴包
# TODO(我用的虛擬環境(如何建立看我前面的部落格文章),所以我直接輸入pip 或者python都會指向python3)
pip install --upgrade pip   # 首先先更新pip
pip install scrapyd
pip install scrapyd-client
  • 二 修改配置檔案

首先修改scrapy配置檔案,進入scrapy專案資料夾,能看到配置檔案scrapy.cfg修改配置如下

[settings]
default = demo.settings [deploy:wgPytho] # 這邊專案名字隨便取 url = http://localhost:6800/ # 這個註釋開啟6800是後面訪問埠,如要修改,scrapyd裡面的也要記得一起修改 project = demo

接著修改scrapyd配置檔案, 檔名為default_scrapyd.conf

  • 說明一下,scrapyd配置檔案可能由於不同的安裝可能路徑不一樣
find / -name default_scrapyd.conf   # 首先知道這個配置檔案路徑
vim /your_path/default_scrapyd.conf  # vim編輯配置檔案
[scrapyd] eggs_dir = eggs logs_dir = logs items_dir = jobs_to_keep = 5 dbs_dir = dbs max_proc = 0 max_proc_per_cpu = 10 #可以不改 這個引數和CPU個數的乘積是爬蟲同時執行的最多個數 為了以後方便改成10 finished_to_keep = 100 poll_interval = 5.0 bind_address = 0.0.0.0 # 繫結的IP地址改成0.0.0.0 外網就可以訪問 http_port = 6800 # 這邊是對應的埠 debug =
off runner = scrapyd.runner application = scrapyd.app.application launcher = scrapyd.launcher.Launcher webroot = scrapyd.website.Root [services] schedule.json = scrapyd.webservice.Schedule cancel.json = scrapyd.webservice.Cancel addversion.json = scrapyd.webservice.AddVersion listprojects.json = scrapyd.webservice.ListProjects listversions.json = scrapyd.webservice.ListVersions listspiders.json = scrapyd.webservice.ListSpiders delproject.json = scrapyd.webservice.DeleteProject delversion.json = scrapyd.webservice.DeleteVersion listjobs.json = scrapyd.webservice.ListJobs daemonstatus.json = scrapyd.webservice.DaemonStatus
  • 三 測試啟動

伺服器一定要確定開啟6800埠, 可以在運營商的控制面板裡面開啟

# TODO()首先進入scrapy專案資料夾下檢視專案是否能正常啟動
scrapy list  # 如果有報錯缺什麼包 可以檢視我的之前的部落格
# 上一步正常 可以測試scrapyd 是否正常
scrapyd  # 測試scrapyd開啟 務必保證開啟6800埠 
# 這一步報錯 可以在stackoverflow 上找答案,我之前部落格也有相關的答錯

OK 到這一部就成功了 一大半,然後可以ctrl + c關掉這個 當然這種方式不是很好,關掉終端,我們scrapyd也GG了, 我們可以後臺執行這個scrapyd程式

  • Tip: 我們啟動了scrapyd專案之後佔用了6800埠,再次啟動就會報埠被佔用,這是我們可以用lsof這個來檢視專案程序(預設沒有安裝lsof 需自己手動安裝)
lsof -i :6800  # 檢視佔用此埠的程序
kill -9  程序號 # kill此程序
# 後臺啟動,  也可以在用nginx什麼之類的部署,據說好麻煩
setsid scrapyd
  • 四, 啟動你的專案
# 部署專案, 一個scrapyd可以部署多個scrapy專案
scrapyd-deploy wgPython(部署名)  # wgPython是在scrapy配置檔案裡面設定的部署名稱
# 開啟你的爬蟲
curl http://localhost:6800/schedule.json -d project=demo(專案名字) -d spider=爬蟲名稱

到此現在就完成了, 然後暫停什麼其他的操作可以檢視scrapyd 官方文件的教程,

  • 順便說一下還有一個spiderkeeper 視覺化的介面,個人感覺那個玩意花裡胡哨的的,部署起來很麻煩,我反正是不喜歡,爬蟲能抓到資料就行了,檢測資料量的變化就可以了。
  • scrapyd的簡單介面,還行。
  • 最後歡迎提問,有空看到我會解答。