使用案例:
import requestsadder='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 是字符串,那么多個(gè)字符串該如何呢。
通過源碼 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對(duì)象,且里面元素是字符,字符串必須包含=符號(hào)。
以此我們嘗試傳入setting:['DEBUG=True','HOST_NAME=axdda']
結(jié)果真的可以。對(duì)于比較復(fù)雜的設(shè)置,下次有需求再研究吧。
總結(jié)
以上所述是小編給大家介紹的scrapyd schedule.json setting 傳入多個(gè)值問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注