python-如何在Scrapy中通过CrawlerProcess传递自定义设置?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何在Scrapy中通过CrawlerProcess传递自定义设置?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1373字,纯文字阅读大概需要2分钟。
内容图文
![python-如何在Scrapy中通过CrawlerProcess传递自定义设置?](/upload/InfoBanner/zyjiaocheng/667/25c74115a07349cfba7c899e71ba4605.jpg)
我有两个CrawlerProcesses,每个都调用不同的Spider.我想将自定义设置传递给这些过程之一,以将Spider的输出保存到csv,我想我可以这样做:
storage_settings = {'FEED_FORMAT': 'csv', 'FEED_URI': 'foo.csv'}
process = CrawlerProcess(get_project_settings())
process.crawl('ABC', crawl_links=main_links, custom_settings=storage_settings )
process.start()
在我的蜘蛛网中,我把它们当作一个参数来阅读:
def __init__(self, crawl_links=None, allowed_domains=None, customom_settings=None, *args, **kwargs):
self.start_urls = crawl_links
self.allowed_domains = allowed_domains
self.custom_settings = custom_settings
self.rules = ......
super(mySpider, self).__init__(*args, **kwargs)
但是如何将这些自定义设置告诉我的项目设置文件“ settings.py”?我不想对其进行硬编码,而是希望它们能够被自动读取.
解决方法:
您无法将这些设置告知您的文件.您可能对搜寻器设置和蜘蛛设置之间感到困惑.杂乱无章时,需要将发生这种扭曲时的进料参数传递给爬虫程序而不是蜘蛛.您必须将它们作为参数传递给搜寻器进程.我和您有相同的用例.您要做的是读取当前项目设置,然后为每个搜寻器过程覆盖它.请参见下面的示例代码:
s = get_project_settings()
s['FEED_FORMAT'] = 'csv'
s['LOG_LEVEL'] = 'INFO'
s['FEED_URI'] = 'Q1.csv'
s['LOG_FILE'] = 'Q1.log'
proc = CrawlerProcess(s)
然后您对process.crawl()的调用不正确.蜘蛛的名称应作为字符串的第一个参数传递,如下所示:process.crawl(‘MySpider’,crawl_links = main_links),当然MySpider应该是在蜘蛛类中为name属性指定的值.
内容总结
以上是互联网集市为您收集整理的python-如何在Scrapy中通过CrawlerProcess传递自定义设置?全部内容,希望文章能够帮你解决python-如何在Scrapy中通过CrawlerProcess传递自定义设置?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。