纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术 → scrapyd schedule.json setting 传入多个值问题

scrapyd schedule.json setting 传入多个值问题

apuyuseng   2020-05-17 我要评论

使用案例:

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}

 可以发现 setting 在这里是list对象,且里面元素是字符,字符串必须包含=符号。

以此我们尝试传入setting:['DEBUG=True','HOST_NAME=axdda']

结果真的可以。对于比较复杂的设置,下次有需求再研究吧。

总结

以上所述是小编给大家介绍的scrapyd schedule.json setting 传入多个值问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


相关文章

猜您喜欢

  • 万万没想到Chrome的历史记录竟然可以这么玩

    最近遇到一个棘手的问题,需要查找含有某个关键字的网页,但是通过chrome原生的历史记录查出来的,查到的结果并不满意,今天小编就给大家分享一篇教程帮助大家解决Chrome历史记录的问题,感兴趣的朋友一起看看吧..
  • springMVC怎样对输入数据校验实现代码

    数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证,本文着重讲解了springMVC怎样对输入数据校验,欢迎大家阅读和收藏..

网友评论

Copyright 2020 www.SoftYun.net 【软件云】 版权所有

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式