1. 程式人生 > >scrapyd的API呼叫方法難記?一個Python指令碼輕鬆搞定

scrapyd的API呼叫方法難記?一個Python指令碼輕鬆搞定

scrapyd官方文件

首先,我們來了解一下什麼是scrapyd

  • scrapyd是執行scrapy爬蟲的服務程式,它支援以http命令方式釋出、刪除、啟動、停止爬蟲程式。而且scrapyd可以同時管理多個爬蟲,每個爬蟲還可以有多個版本。

為什麼要使用scrapyd

  • 1、可以避免爬蟲原始碼被看到。
  • 2、有版本控制。
  • 3、可以遠端啟動、停止、刪除。

怎樣安裝scrapyd

  • 1,安裝scrapyd
    主要有兩種安裝方式:
    pip install scrapyd (安裝的版本可能不是最新版本)
    https://github.com/scrapy/scrapyd 中下載原始碼,
    執行python
    setup.py
    install 命令進行安裝
  • 2, 安裝 scrapyd-deploy
    主要有兩種安裝方式:
    pip install scrapyd-client(安裝的版本可能不是最新版本)
    http://github.com/scrapy/scrapyd-client 中下原始碼,
    執行python setup.py install 命令進行安裝。

scrapy的使用

  1. 第一步:
    在服務端 啟動 scrapyd,執行scrapyd命令即可
    在這裡插入圖片描述
    啟動成功後,在瀏覽器中可以通過服務端的IP 和 預設埠號6800進行訪問,介面如圖所示
    在這裡插入圖片描述
  2. 第二步:
    釋出爬蟲工程到 scrapyd

首先配置 scrapy爬蟲中的 scrapy.cfg


在這裡插入圖片描述

  • 1.首先去掉url前面的註釋符號,url是scrapyd伺服器的網址
  • 2.然後project=tenCent為專案名稱,可以隨意起名
  • 3.修改[deploy]為[deploy:100],表示把爬蟲釋出到名為100的爬蟲伺服器上,一般在需要同時釋出爬蟲到多個目標伺服器時使用
    在這裡插入圖片描述

新增爬蟲工程
命令如下:

Scrapyd-deploy <tartget> -p <project> --version <version>

引數解釋:

  • Target:deploy後面的名稱。
  • Project:自行定義名稱,跟爬蟲的工程名字無關。
  • Version:自定義版本號,不寫的話預設為當前時間戳。
    在這裡插入圖片描述

    釋出成功之後 在瀏覽器介面重新整理 即可看到 新新增的 爬蟲工程

以上在scrapyd官方文件中 都有說明,如有不明,請檢視官方文件

**

重點來了,下面是scrapyd 提供的API

**

  1. 啟動爬蟲任務:
curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider_name
  1. 停止爬蟲任務:
curl http://localhost:6800/cancel.json -d project=spider_name -d job=job_id
  1. 檢查服務的負載狀態
curl http://localhost:6800/daemonstatus.json
  1. 獲取上傳到此Scrapy伺服器的專案列表
curl http://localhost:6800/listprojects.json

其實 以上這些難記的 API 只需要一個簡單的 Python指令碼 就可以搞定

import requests

class ScrapyApi(object):
	def __init__(self):
		self.ip = "localhost"
		self.port = 6800
		
	#啟動爬蟲任務方法
	def schedule(self,project,spider):
		self.url = "http://%s:%s/schedule.json"%(self.ip,self.port)
		self.data = {
			"project":project,
			"spider":spider
		}
		return requests.post(url=self.url, data=self.data).json()
	
	#這是停止爬蟲的方法
	def cancel(self,project,job_id):
		self.url = "http://%s:%s/cancel.json"%(self.ip,self.port)
		self.data = {
			"project":project,
			"job_id":job_id
		}
		return requests.post(url = self.url, data=self.data).json()
	
	。。。

if __name__=="__main__":
	sa = ScrapydApi()
	sa.schedule("專案名","爬蟲名")
	sa.cancel("專案名","job_id")
	。。。

當然 還有其他辦法,shell指令碼 也是一個不錯的選擇
或者 Python的 os模組,使用 os.system能直接呼叫 shell 命令,也能輕鬆實現。選擇適合自己的方法就好了

相關推薦

scrapyd的API呼叫方法一個Python指令碼輕鬆

scrapyd官方文件 首先,我們來了解一下什麼是scrapyd scrapyd是執行scrapy爬蟲的服務程式,它支援以http命令方式釋出、刪除、啟動、停止爬蟲程式。而且scrapyd可以同

一鍵黑客工具:一個Python指令碼所有攻擊操作

  近期出現了可綜合利用Shodan裝置搜尋引擎和Metasploit滲透測試工具的Python程式碼。該程式碼會用Shodan.io自動搜尋有漏洞的線上裝置,隨後使用Metasploit的漏洞利用資料庫劫持計算機和其他線上裝置。      

今天給你介紹一款黑客神器!一個Python指令碼所有攻擊!

近期出現了可綜合利用Shodan裝置搜尋引擎和Metasploit滲透測試工具的Python程式碼。該程式碼會用Shodan.io自動搜尋有漏洞的線上裝置,隨後使用Metasploit的漏洞利用資料庫劫持計算機和其他線上裝置。 只需點選執行,該指令碼就會爬取網際網路,尋找可以攻擊的脆弱主機(通常

Bugku-WEB-cookies欺騙(缺一個python指令碼

題目: 這裡注意到filename=a2V5cy50eHQ=,應該是base64編碼,解碼一下,得到了keys.txt 想想應該怎麼利用一下呢。題目是cookies欺騙,可能keys.txt中應該存在我們所需要的cookies   解題:這裡想錯了。。沒仔細去看url

如何把一個Python指令碼加入Windows右鍵選單

例如我有一個Python程式,叫getPath.py,用來獲得我選中的檔案的全路徑名稱。 getPath.pyimport sys if __name__ == '__main__': if len(sys.argv)!= 2: sys.exit(

python指令碼中啟動另一個python指令碼

         有時間,我們需要在一個python指令碼中調起另一個python指令碼,下面我嘗試了一下,          1.父指令碼如下: #coding:utf8 #!/usr/local/bin/python import time import datet

樹莓派把一個python指令碼作為服務執行,配置開機自動啟動

週六黑客馬拉松做了個樹莓派遙控船,發現簡單的把python指令碼加到rc.local好像無法自動啟動,於是找到了下面的方法,做成一個服務。首先寫個Python指令碼檔案儲存在/home/pi/script/ledblink.py123456789101112131415#!/

編寫第一個python 指令碼(重要檔案建立備份)

程式設計思路: 需要備份的檔案和目錄由一個列表指定。 備份應該儲存在主備份目錄中。 檔案備份成一個zip檔案。 zip存檔的名稱是當前的日期和時間。 我們使用標準的zip命令,它通常預設地隨Linux/Unix發行版提供。Windows使用者可以使用Info-Z

一個python指令碼處理提取視訊幀的問題

為啥要寫這個呢?之前已經給了一個shell指令碼處理這個問題。 我想最主要的是我跑完指令碼後輸出了一句 video:20789kB audio:0kB subtitle:0kB other stre

Python:10分鐘不寫代碼的爬蟲

出現 ring swe 導入 gem 取數據 bbb del delay 代碼自己敲 使用 Chrome 瀏覽器插件 Web Scraper 可以輕松實現網頁數據的爬取,不寫代碼,鼠標操作,點哪爬哪,還不用考慮爬蟲中的登陸、驗證碼、異步加載等復雜問題。 Web Scrap

一個拓撲全-- EIGRP水平分割

eigrp 水平分割 ccna EIGRP水平分割1.1.1.所需設備下面是做這個實驗練習所需的設備:1) 三臺具有一個串行端口的Cisco路由器;2) Cisco IOS 10.0版或更高;3) 一臺運行了終端仿真程序的PC; 4) 三根Cisco DTE/DCE交叉電纜;5) 一根Cisco扁

手機開不了鎖怎麼辦?這種方法簡單,一招就能輕鬆

在日常使用手機的時候是否遇到這樣的情況,手機的解鎖密碼忘記,拿去手機店幫忙解鎖的話,最少也要收你幾十塊,其實解鎖方面非常的簡單我們大不必花那個冤枉錢,教你一招,10秒解決問題。當然這個方法只對安卓手機使用者有效,蘋果手機則不能用這個方法。   首先第一步,我們要先把我們的手機關機

Excel表格太大,怎麼列印在一張紙上?一個鍵1秒

你在列印Excel表格的時候,有沒有出現過這種情況:本該一頁顯示的內容硬生生被分成兩頁列印。結果只能儘量調小字型、單元格大小,將表格縮成一頁? 其實不用這麼麻煩的,想將表格列印在一張紙上,無需折騰字型、單元格大小,只要一個簡單的設定,就能將Excel表格自動調整為一頁列印,快來學學吧,以後就再也

資料分析?小意思!python幫你

  前言 如果大家經常閱讀Python爬蟲相關的公眾號,都會是以爬蟲+資料分析的形式展現的,這樣很有趣,圖表也很不錯,今天了,我就來分享上一次在培訓中的一個作品:貓眼電影爬蟲及分析。 通過貓眼電影TOP100榜的爬蟲,然後進行視覺化,讓學員體會到,小資料爬蟲也能玩出這樣的

網站上的視訊音樂圖文,不讓複製或下載?使用這5種方法輕鬆

很多網站上的視訊,音樂,圖文是不支援直接下載的,如果我們很需要又不想付費該如何獲取呢? 下面分享5種方法,輕鬆搞定,網站上的視訊,音樂,圖文不讓複製或下載的難題! 一.圖片複製: 方法步驟:任何一個網頁都是由程式碼構成的,所以程式碼裡面就有圖片原連結了。我只需檢

將「8天14時」換算成具體的小時數,Python輕鬆

資料準備 背景需要將【8天14時】換算成具體的 小時數, 為下一步的資料預測模型 做資料準備, 資料預處理資料如下: 更多Python視訊、原始碼、資料加群960410445免費獲取 引子 正常的計算兩個日期小時差的程式碼如下:  

手把手教你用一個二維碼微信防封,親測有效

今天要分享的是用一個二維碼成功實現微信防封的經驗,別不信,已經有不少人都用過了。 適合人群:擔心自己的微訊號、微信群被封的人群,比如做微商、代理、淘寶客的群主。 目標:幫助這部分人群避免被封號封群。 其實,這個防封的原理和過程很簡單,就是把風險轉移出去,不在微信裡涉及敏感話題內容。

輕鬆RabbitMQ(七)——遠端過程呼叫RPC

翻譯:http://www.rabbitmq.com/tutorials/tutorial-six-java.html在第二篇博文中,我們已經瞭解到瞭如何使用工作佇列來向多個消費者分散耗時任務。但是付過我們需要在遠端電腦上執行一個方法然後等待結果,該怎麼辦?這是不同的需求。

【微服務】之五:輕鬆SpringCloud微服務-呼叫遠端元件Feign

上一篇文章講到了負載均衡在Spring Cloud體系中的體現,其實Spring Cloud是提供了多種客戶端呼叫的元件,各個微服務都是以HTTP介面的形式暴露自身服務的,因此在呼叫遠端服務時就必須使用HTTP客戶端。我們可以使用JDK原生的URLConnection、Apache的Http Client、

Excel快速合併,簡單方法輕鬆

想要高效完成工作,就必須掌握一些實用的工作技巧,來幫助我們更好更快的完成任務。 分享6個使用效率高達95%的Excel實用技巧,工作中經常被用到! 1.多行資料合併: 製作表格時,如果我們需要將多行資料合併為一行,可以這樣做:首先將單元格列寬拉寬,然後選中資料,