Scrapy爬蟲教程五 爬蟲部署

Scrapy爬蟲教程一 Windows下安裝Scrapy的方式和問題總結(jié)

Scrapy爬蟲教程二 淺析最煩人的反爬蟲手段

Scrapy爬蟲教程三 詳細(xì)的Python Scrapy模擬登錄知乎

Scrapy爬蟲教程四 Scrapy+Selenium有瀏覽器界面模擬登錄知乎

Scrapy爬蟲教程五 爬蟲部署

現(xiàn)在使用Scrapy進(jìn)行爬取數(shù)據(jù)已經(jīng)輕車熟路了,那這篇文章中就講述了一下將爬蟲部署到生產(chǎn)環(huán)境中。scrapy官方提供了爬蟲管理工具scrapyd來方便的部署爬蟲。

操作環(huán)境:

????Python 3.6.3??

????pip 9.0.1??

????curl 7.57.0

一.scrapyd

1.1使用scrapyd的好處?

????最大的好處就是方便使用,我們可以使用它來方便地運(yùn)用 JSON API來部署爬蟲、控制爬蟲以及查看運(yùn)行日志。

1.2.scrapyd工作原理

? ? 當(dāng)在一個(gè)服務(wù)器上安裝并運(yùn)行scrapyd服務(wù)的時(shí)候,scrapyd會以守護(hù)進(jìn)程的形式來監(jiān)聽爬蟲的運(yùn)行和請求,然后啟動進(jìn)程來執(zhí)行爬蟲程序。

1.3.scrapyd的使用

1.3.1 scrapyd安裝

pip install scrapyd

1.3.2 scrapyd啟動

在命令行中敲入以下命令

scrapyd

啟動之后的是這樣的:


scrapyd 也提供了 web 的接口。方便我們查看和管理爬蟲程序。默認(rèn)情況下 scrapyd 監(jiān)聽 6800 端口,運(yùn)行 scrapyd 后。在本機(jī)上使用瀏覽器訪問http://localhost:6800/地址即可查看到當(dāng)前可以運(yùn)行的項(xiàng)目。


二.項(xiàng)目部署

? ? 使用scrapyd-client提供的scrapyd-deploy工具進(jìn)行部署

2.1 原理

????scrapyd 是運(yùn)行在服務(wù)器端,而 scrapyd-client 是運(yùn)行在客戶端??蛻舳耸褂?scrapyd-client 通過調(diào)用 scrapyd 的 json 接口來部署爬蟲項(xiàng)目。

2.2 scrapyd-client安裝

????在命令行中敲入以下命令

pip install scrapyd-client

2.3配置項(xiàng)目的服務(wù)器信息

? ? 修改工程目錄下的scrapy.cfg文件

? ??如果你的服務(wù)器上有配置HTTP basic authentication驗(yàn)證的話,那么還需要配置用戶名和密? ? ? 碼用來登錄服務(wù)器

# -*- coding: utf-8 -*-

# Automatically created by: scrapy startproject

#

# For more information about the [deploy] section see:

# https://scrapyd.readthedocs.org/en/latest/deploy.html

[settings]default = speechspider.settings

[deploy:server]? #為服務(wù)器指定的一個(gè)名字 這里我指定為server

url = http://localhost:6800/? ?#部署項(xiàng)目的服務(wù)器地址,現(xiàn)在把項(xiàng)目部署到本地,如果部署到其他機(jī)器上就需要更改ip

project = speechspider???? # speechspider為工程名稱

username = *******

password = *******?

2.4部署爬蟲程序

? ? 在爬蟲根目錄下運(yùn)行以下命令:

scrapyd-deploy <target> -p <project>

? ? target為上一步在配置文件中配置的服務(wù)器名稱,project為項(xiàng)目名稱,拿我這個(gè)爬蟲程序部署為例,執(zhí)行的命令如下:

scrapyd-deploy server -p speechspider

? ??部署操作會打包你的當(dāng)前項(xiàng)目,如果當(dāng)前項(xiàng)目下有setup.py文件,就會使用它當(dāng)中的配置,沒有就會自動創(chuàng)建一個(gè)。(如果后期項(xiàng)目需要打包的話,可以根據(jù)自己的需要修改里面的信息,也可以暫時(shí)不管它). 從返回的結(jié)果里面,我們可以看到部署的狀態(tài),項(xiàng)目名稱,版本號和爬蟲個(gè)數(shù),以及當(dāng)前的主機(jī)名稱.

? ? 運(yùn)行結(jié)果如下:


? ? 使用以下命令查看部署結(jié)果:

scrapyd-deploy -L 服務(wù)器名稱

$ scrapyd-deploy -L server

speechspider

default

????刷新http://localhost:6800/頁面, 也可以看到Available projects:speechspider, default的字樣。

三.使用API管理爬蟲

scrapyd 的 web 界面比較簡單,主要用于監(jiān)控,所有的調(diào)度工作全部依靠接口實(shí)現(xiàn)。官方推薦使用 curl 來管理爬蟲。

3.1 安裝curl

? ??windows 用戶可以到該網(wǎng)站https://curl.haxx.se/download.html下載 curl 安裝包進(jìn)行安裝。

? ??ubuntu/Mac 用戶直接使用命令行安裝即可。

3.2 開啟爬蟲schedule

? ? 在項(xiàng)目根目錄下運(yùn)行以下命令來開啟爬蟲:

3.3 取消爬蟲

3.4 列出項(xiàng)目

3.5?列出爬蟲、版本、job 信息

3.6?刪除爬蟲項(xiàng)目

? ? 好了,爬蟲程序的部署和使用API管理就介紹到這里。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容