手把手教你用Scrapy+Gerapy部署網(wǎng)絡(luò)爬蟲
前言
Hi,大家好,又見面了,我是Python進階者,廢話不多說,直接開始肝吧,奧里給!
爬蟲管理效果圖

依賴包
文件:requirements.txt
文件的內(nèi)容這里直接貼出來了:
- appdirs==1.4.4
- APScheduler==3.5.1
- attrs==20.1.0
- Automat==20.2.0
- beautifulsoup4==4.9.1
- certifi==2020.6.20
- cffi==1.14.2
- chardet==3.0.4
- constantly==15.1.0
- cryptography==3.0
- cssselect==1.1.0
- Django==1.11.29
- django-apscheduler==0.3.0
- django-cors-headers==3.2.0
- djangorestframework==3.9.2
- furl==2.1.0
- gerapy==0.9.5
- gevent==20.6.2
- greenlet==0.4.16
- hyperlink==20.0.1
- idna==2.10
- incremental==17.5.0
- itemadapter==0.1.0
- itemloaders==1.0.2
- Jinja2==2.10.1
- jmespath==0.10.0
- lxml==4.5.2
- MarkupSafe==1.1.1
- orderedmultidict==1.0.1
- parsel==1.6.0
- Protego==0.1.16
- pyasn1==0.4.8
- pyasn1-modules==0.2.8
- pycparser==2.20
- PyDispatcher==2.0.5
- pyee==7.0.2
- PyHamcrest==2.0.2
- pymongo==3.11.0
- PyMySQL==0.10.0
- pyOpenSSL==19.1.0
- pyppeteer==0.2.2
- pyquery==1.4.1
- python-scrapyd-api==2.1.2
- pytz==2020.1
- pywin32==228
- queuelib==1.5.0
- redis==3.5.3
- requests==2.24.0
- Scrapy==1.8.0
- scrapy-redis==0.6.8
- scrapy-splash==0.7.2
- scrapyd==1.2.1
- scrapyd-client==1.1.0
- service-identity==18.1.0
- six==1.15.0
- soupsieve==2.0.1
- tqdm==4.48.2
- Twisted==20.3.0
- tzlocal==2.1
- urllib3==1.25.10
- w3lib==1.22.0
- websocket==0.2.1
- websockets==8.1
- wincertstore==0.2
- zope.event==4.4
- zope.interface==5.1.0
項目文件
項目文件:qiushi.zip
實現(xiàn)功能:糗事百科段子爬蟲,
這是Scrapy項目,依賴包如上
運行項目步驟
- 在安裝好依賴包并且解壓項目文件,pip install -r requirements.txt
- 執(zhí)行命令scrapy crawl duanzi --nolog
配置Scrapyd
可以理解Scrapyd是一個管理我們寫的Scrapy項目的,配置好這個之后,可以通過命令運行,暫停等操作控制爬蟲
其他的就不說了,這個用的也不多,我們需要做的就是將它啟動就可以了
啟動Scrapyd服務(wù)
1.切換到qiushi爬蟲項目目錄下,Scrapy爬蟲項目需要進入爬蟲目錄,才能執(zhí)行命令

2.執(zhí)行命令scrapyd

3.游覽器輸入http://127.0.0.1:6800/,出現(xiàn)以下圖片代表正確

打包Scrapy上傳到Scrapyd
上述只是啟動了Scrapyd,但是并沒有將Scrapy項目部署到Scrapy上,需要配置以下Scrapy的scrapy.cfg文件

配置如下

打包命令
- scrapyd-deploy <部署名> -p <項目名>
本次示例命令
- scrapyd-deploy qb -p qiushi
如圖所示,出現(xiàn)以下圖片表示成功

注:過程可能會有問題,解決辦法我放在后面了!!!
再次回到游覽器,會多了一個項目qiushi,到此為止,Scrapyd已經(jīng)配置完畢

配置Gerapy
上述都配置完畢之后,就可以進行Gerapy配置了,其實Scrapyd的功能遠(yuǎn)不止上述那么少,但是是命令操作的,所以不友好,
Gerapy可視化的爬蟲管理框架,使用時需要將Scrapyd啟動,掛在后臺,其實本質(zhì)還是向Scrapyd服務(wù)發(fā)請求,只不過是可視化操作而已
基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 開發(fā)
配置步驟
Gerapy和Scrapy是沒有關(guān)系的,所以可以隨便選一個文件夾,這里我創(chuàng)建了一個gerapyDemo文件夾
執(zhí)行命令初始化gerpay
- gerapy init
1.會生成一個gerapy文件夾

2.進入生成的gerapy文件夾中

3.執(zhí)行命令,會生成一表
- gerapy migrate
4.啟動gerapy服務(wù),默認(rèn)是8000端口,可以指定端口啟動
- gerapy runserver
- gerapy runserver 127.0.0.1:9000 本機 9000端口啟動
4.打開游覽器,輸入http://127.0.0.1:8000/,出現(xiàn)以下界面表示成功

當(dāng)然,一般情況下,大概是這樣的界面,我們需要生成賬號密碼
停止服務(wù),輸入命令gerapy creatsuperuser,根據(jù)提示創(chuàng)建賬號密碼就使用賬號登錄了

在Gerapy添加爬蟲項目
上述都配置之后,我們就可以配置爬蟲項目了,通過點點點的方式,就可以運行爬蟲了
點擊 主機管理-->創(chuàng)建,ip是Scrapyd服務(wù)的主機,端口是Scrapyd的端口,默認(rèn)6800,填寫后點擊創(chuàng)建

然后在主機列表,調(diào)度中,就可以運行爬蟲了

運行爬蟲

獲取結(jié)果,結(jié)果已經(jīng)寫入本地

打包爬蟲上傳
上述過程,我們只是能玩爬蟲了,但是并不徹底,按照道理來說,我們還差一個打包過程,只有打包爬蟲了,才算是真正的結(jié)合在一起了
步驟
1.首先需要將爬蟲項目拷貝到gerapy下面的projects文件夾下

2.刷新頁面,點擊項目管理,可以看到可配置和打包都是x號狀態(tài)

3.點擊部署,寫好描述,點擊打包

4.再次回到主界面,可以發(fā)現(xiàn)打包已經(jīng)是正確的了
至此,基本整個流程結(jié)束。
解決scrapyd-deploy不是內(nèi)部外部命令
通常情況下,在執(zhí)行scrapyd-deploy時,會提示scrapyd-deploy不是內(nèi)部或外部命令,嗯...這個是正常操作
解決步驟
1.找到Python解釋器下面的Scripts,新建scrapy.bat和scrapyd-deploy.bat兩個文件

修改這兩個文件,內(nèi)容如下
- scrapy.bat
- @echo off
- D:\programFiles\miniconda3\envs\hy_spider\python D:\programFiles\miniconda3\envs\hy_spider\Scripts\scrapy %*
- scrapyd-deploy.bat
- @echo off
- D:\programFiles\miniconda3\envs\hy_spider\python D:\programFiles\miniconda3\envs\hy_spider\Scripts\scrapyd-deploy %*
注:紅色方框表示是解釋器的位置,上述內(nèi)容是一行的,我粘貼過來怎么調(diào)都是兩行...,一一對應(yīng)好就好了。
Gerapy使用流程總結(jié)
- 1.gerapy init 初始化,會在文件夾下創(chuàng)建一個gerapy文件夾
- 2.cd gerapy
- 3.gerapy migrate
- 4.gerapy runserver 默認(rèn)是127.0.0.1:8000
- 5.gerapy createsuperuser 創(chuàng)建賬號密碼,默認(rèn)情況下都是沒有的
- 6.游覽器輸入127.0.0.1:8000 登錄賬號密碼,進入主頁
- 7.各種操作,比如添加主機,打包項目,定時任務(wù)等
總結(jié)
上述以入門的方式解決了安排了以下如何通過Gerapy + Scrpyd + Scrapy可視化部署爬蟲。