阿里雲WindowsServer部署python scrapy爬蟲

*本文適合Python新手node

準備工做:python

1,一個阿里雲ECS服務器實例react

2,阿里雲ECS服務器實例中安裝好Mysqllinux

3,本地開發機並已經寫好爬蟲項目web

部署步驟:sql

1、複製本地Python環境至阿里雲服務器json

  1,阿里雲服務器上安裝Anaconda(本地開發機也一樣用的這個配置環境,新手適應度100,嘿嘿)windows

  2,導出本地Python環境到文件中api

#進入要導出的python環境
D:\>activate python27
#導出環境到文件中
(python27) D:\>conda env export --file py27.yml

  3,將py27.yml文件複製到阿里雲服務器好比D盤根目錄安全

  4,在服務器命令行(管理員)中輸入下面的命令,而後activate一下,沒問題的話OK,環境複製完畢

D:\>conda env create --file py27.yml

2、阿里雲服務器安裝 scrapyd注意是scrapydddddddddd!!!

(python27) D:\>pip install scrapyd

  本人對這個scrapyd 也是隻知其一;不知其二,經過摸索,簡單理解爲一個高級的網站,能夠經過它自己的各類 json api 控制你的爬蟲,OK,如今啓動網站( ctrl+c 關閉)

(python27) D:\>scrapyd

    出現如下內容代表,已經部署成功啦

2018-07-21T23:59:41+0800 [-] Loading c:\programdata\anaconda3\envs\python27\lib\site-packages\scrapyd\txapp.py...
2018-07-21T23:59:43+0800 [-] Scrapyd web console available at http://0.0.0.0:6800/
2018-07-21T23:59:43+0800 [-] Loaded.
2018-07-21T23:59:43+0800 [twisted.application.app.AppLogger#info] twistd 16.6.0 (c:\programdata\anaconda3\envs\python27\python.exe 2.7.13) starting up.
2018-07-21T23:59:43+0800 [twisted.application.app.AppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.
2018-07-21T23:59:43+0800 [-] Site starting on 6800
2018-07-21T23:59:43+0800 [twisted.web.server.Site#info] Starting factory <twisted.web.server.Site instance at 0x0000000004AB36C8>
2018-07-21T23:59:43+0800 [Launcher] Scrapyd 1.1.1 started: max_proc=16, runner='scrapyd.runner'

   在阿里雲本地輸入http://localhost:6800/ 已經能夠打開這個網站啦!可是咱們要從本地開發機上訪問它而且調用它的json api,怎麼辦呢!輸入阿里雲的外網地址+端口,怎麼回事,打不開?!而後我想起了阿里雲服務器都必須在安全組裏對實例進行配置規則才能訪問該端口,好的,我去增長了6800的端口安全組,YES,在本地開發機上能訪問到這個地址啦!!!爲本身的機制點贊!

3、在本地開發機上安裝scrapyd-client 

  看別人的步驟,輸入

(python27) D:\>pip install scrapyd-client

  嗯,而後進入爬蟲項目目錄,輸入

(python27) D:\zoom!zoom\PythonSpider\firstspider>scrapyd-deploy

  喜聞樂見的'scrapyd-deploy' 不是內部或外部命令,也不是可運行的程序或批處理文件。出現了。。。百度之。。。

  好吧,辦法是在..\Anaconda3\envs\python27\Scripts目錄下增長一個 scrapyd-deploy.bat 文件,我寫的是相對的路徑,各位看官自行找到本身電腦的那個目錄,文件內容以下,就好像是配置個環境變量,話說linux好像不用整這個,windows受鄙視了麼?!

@echo off
"C:\ProgramData\Anaconda3\envs\python27\python.exe" "C:\ProgramData\Anaconda3\envs\python27\Scripts\scrapyd-deploy" %*

  再次輸入

(python27) D:\>scrapyd-deploy

    出現下面這個,bingo!scrapyd-deploy安裝完畢!

Unknown target: default

 4、修改爬蟲項目配置文件scrapy.cfg 

#服務器別名
[deploy:aliyun]
#服務器地址
url = http://xxx.xxx.xxx.xxx:6800/
#項目名稱
project = firstspider

 5、一切準備就緒,上傳咱們的爬蟲項目至服務器嘍!大概意思就是 scrapyd-deploy 服務器別名 -p 項目名稱

(python27) D:\zoom!zoom\PythonSpider\firstspider>scrapyd-deploy aliyun -p firstspider

  出現如下這個,說明上傳成功!若是出現其餘錯誤,自行百度吧,反正我遇到一個environment can only contain strings的錯誤,大神們有的說改scrapy或者scrapyd版本,有的說改python源碼,歐弟乖乖,我仍是改版本吧,python真雞兒折騰!

Packing version 1532175294
Deploying to project "firstspider" in http://xxx.xxx.xxx.xxx:6800/addversion.json
Server response (200):
{"status": "ok", "project": "firstspider", "version": "1532175294", "spiders": 1, "node_name": "iZrtjqvcszmo77Z"}

 6、好嘍,啓動咱們的爬蟲咯!等等,臥槽,又要一個 curl  工具,windows又又又又沒有!老老實實點服務器部署的那個scrapyd的網站上提示的那個連接去下載吧!最新的來一套,解壓,添加系統環境變量,煎餅果子來一套!yoyoyo,checkcheckcheck!

  而後,curl ......,下面三個加上步驟五的命令,夠咱們新手玩了。。。 

#啓動爬蟲 此時參數爲 -d project=項目名稱 -d spider=爬蟲名稱
(python27) D:\zoom!zoom\PythonSpider\firstspider>curl http://xxx.xxx.xxx.xxx:6800/schedule.json -d project=firstspider -d spider=dsfootball
{"status": "ok", "jobid": "13c328408ce011e8bcabe99e10d6e876", "node_name": "iZrtjqvcszmo77Z"}
#中止爬蟲 此時參數爲 -d project=項目名稱 -d job=那個網站上顯示的job內容
(python27) D:\zoom!zoom\PythonSpider\firstspider>curl http://xxx.xxx.xxx.xxx:6800/cancel.json -d project=firstspider -d job=13c328408ce011e8bcabe99e10d6e876
{"status": "ok", "prevstate": null, "node_name": "iZrtjqvcszmo77Z"}
#刪除項目 此時參數爲 -d project=項目名稱
(python27) D:\zoom!zoom\PythonSpider\firstspider>curl http://xxx.xxx.xxx.xxx:6800/delproject.json -d project=firstspider
{"status": "ok", "node_name": "iZrtjqvcszmo77Z"}
相關文章
相關標籤/搜索