scrapyrt為scrapy提供了一個http接口,有了它,我們不用再執行命令,而是直接請求一個http接口來啟動項目,如果項目是部署在遠程的,會比較方便。
1、安裝: pip install scrapyrt
2、在任意一個項目中運行scrapyrt,再此我們在quotes爬蟲項目中運行。默認會運行在9080端口上。
此時我們可以在瀏覽器中請求此項目:http://localhost:9080/crawl.json?spider_name=quotes&url=http://quotes.toscrape.com/
返回數據如下:解析此json數據即可。
scrapyrt可以有Get和Post兩種請求方式
Get:目前Get請求支持如下參數
1、spider_name:Spider名稱,字符串類型,必傳參數,如果傳遞的spider不存在,則返回404錯誤。
2、url:爬取鏈接,字符串類型,如果起始鏈接沒有定義就必須傳遞這個參數,如果傳遞了該參數,Scrapy會直接使用此URL生成Request,而直接忽略start_requests()方法和starts_urls屬性的定義。
3、callback:回調函數名稱,字符串類型,可選參數,如果傳遞了就會使用此回調函數處理,否則使用Spider默認的回調函數
4、max_requests:最大請求數量,數值類型,可選參數,定義了scrapy執行請求的Request的最大次數限制,如果定義為5,則表示最多執行5此Request請求,其余的會被忽略。
5、start_requests:代表是否要執行start_requests方法,布爾類型,可選參數。scrapy項目中,如果定義了start_requests()方法,默認會被調用;但是在scrapyrt中,此方法默認不會被調用,如果要調用,需要傳遞參數為true。
Post:
也可以通過Post請求來請求scrapyrt,但是此處的Request Body必須是一個合法的Json配置,在json中可以配置更多的參數,更加靈活。
目前Json配置支持以下參數
1、spider_name:Spider名稱,字符串類型,必傳參數,如果傳遞的spider不存在,則返回404錯誤。
2、max_requests:最大請求數量,數值類型,可選參數,定義了scrapy執行請求的Request的最大次數限制,如果定義為5,則表示最多執行5此Request請求,其余的會被忽略。
3、request:Request配置,Json對象,必傳參數,通過該參數可以定義Request的各個參數,必須指定url字段來執行爬取鏈接,其他字段可選。