
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管理就介紹到這里。