scrapyd schedule.json setting 傳入多個值問題
使用案例:
import requests adder='http://127.0.0.1:6800' data = { 'project':'v1', 'version':'12379', 'setting':['ROBOTSTXT_OBEY=True','CONCURRENT_REQUESTS=32'] } resp = requests.post(adder,data=data)
問題解決思路:
版本1.2文檔中:
◦setting (string, optional) - a Scrapy setting to use when running the spider
setting 是字符串,那么多個字符串該如何呢。
通過源碼 site-packages/scrapyd/webservice.py
class Schedule(WsResource): def render_POST(self, txrequest): args = native_stringify_dict(copy(txrequest.args), keys_only=False) settings = args.pop('setting', []) settings = dict(x.split('=', 1) for x in settings) args = dict((k, v[0]) for k, v in args.items()) project = args.pop('project') spider = args.pop('spider') version = args.get('_version', '') spiders = get_spider_list(project, version=version) if not spider in spiders: return {"status": "error", "message": "spider '%s' not found" % spider} args['settings'] = settings jobid = args.pop('jobid', uuid.uuid1().hex) args['_job'] = jobid self.root.scheduler.schedule(project, spider, **args) return {"node_name": self.root.nodename, "status": "ok", "jobid": jobid}
可以發(fā)現(xiàn) setting 在這里是list對象,且里面元素是字符,字符串必須包含=符號。
以此我們嘗試傳入setting:['DEBUG=True','HOST_NAME=axdda']
結(jié)果真的可以。對于比較復(fù)雜的設(shè)置,下次有需求再研究吧。
總結(jié)
以上所述是小編給大家介紹的scrapyd schedule.json setting 傳入多個值問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
A標(biāo)簽中通過href和onclick傳遞的this對象實現(xiàn)思路
想傳遞當(dāng)前對象給一個函數(shù),于是就將這個URL寫成"Javascript:shoControlSidebar(this)",可是結(jié)果發(fā)現(xiàn)這并不可行,接下來為大家詳細(xì)介紹下解決方法2013-04-04layer彈出層倒計時關(guān)閉的實現(xiàn)方法
今天小編就為大家分享一篇layer彈出層倒計時關(guān)閉的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS Array.slice 截取數(shù)組的實現(xiàn)方法
這篇文章主要介紹了JS Array.slice 截取數(shù)組的實現(xiàn)方法,因為我們需要控制一下長度,需要的朋友可以參考下2016-01-01