python– 运行scrapy蜘蛛时出现Scrapyd init错误

python– 运行scrapy蜘蛛时出现Scrapyd init错误,第1张

概述我正在尝试使用四个蜘蛛部署一个爬虫.其中一个蜘蛛使用XMLFeedSpider并从shell和scrapyd运行良好,但其他人使用BaseSpider并且在scrapyd中运行时都会出现此错误,但是从shell运行正常 TypeError: init() got an unexpected keyword argument '_job' 从我所看到的,这

我正在尝试使用四个蜘蛛部署一个爬虫.其中一个蜘蛛使用XMLFeedSpIDer并从shell和scrapyd运行良好,但其他人使用BaseSpIDer并且在scrapyd中运行时都会出现此错误,但是从shell运行正常

TypeError: init() got an unexpected keyword argument ‘_job’

从我所看到的,这指向我的蜘蛛中的init函数的问题,但我似乎无法解决问题.我不需要init函数,如果我完全删除它,我仍然会收到错误!

我的蜘蛛看起来像这样

from scrapy import logfrom scrapy.spIDer import BaseSpIDerfrom scrapy.selector import XmlXPathSelectorfrom betFeeds_master.items import Odds# ParametersMYGLOBAL = 39class homeSpIDer(BaseSpIDer):     name = "home"     #con = None    allowed_domains = ["www.myhome.com"]    start_urls = [        "http://www.myhome.com/oddxml.aspx?lang=en&subscriber=mysubscriber",]    def parse(self,response):        items = []        traceCompetition = ""        xxs = XmlXPathSelector(response)        oddsobjects = xxs.select("//OO[OddsType='3W' and Sport='Football']")        for oddsobject in oddsobjects:            item = Odds()            item['competition'] = ''.join(oddsobject.select('Tournament/text()').extract())            if traceCompetition != item['competition']:                log.msg('Processing %s' % (item['competition']))                #print item['competition']                traceCompetition = item['competition']            item['matchDate'] = ''.join(oddsobject.select('Date/text()').extract())            item['homeTeam'] = ''.join(oddsobject.select('OddsData/HomeTeam/text()').extract())            item['awayTeam'] = ''.join(oddsobject.select('OddsData/AwayTeam/text()').extract())            item['lastUpdated'] = ''            item['bookIE'] = MYGLOBAL            item['home'] = ''.join(oddsobject.select('OddsData/HomeOdds/text()').extract())            item['draw'] = ''.join(oddsobject.select('OddsData/DrawOdds/text()').extract())            item['away'] = ''.join(oddsobject.select('OddsData/AwayOdds/text()').extract())            items.append(item)        return items

我可以在蜘蛛中使用init函数,但是我得到了完全相同的错误.

def __init__(self,*args,**kwargs):    super(homeSpIDer,self).__init__(*args,**kwargs)    pass

为什么会发生这种情况,我该如何解决?最佳答案alecx给出了一个很好的答案:

我的init函数是:

def __init__(self,domain_name):

为了在一个鸡蛋中使用scrapyd,它应该是:

def __init__(self,domain_name,**kwargs):

考虑将domain_name作为强制参数传递 总结

以上是内存溢出为你收集整理的python – 运行scrapy蜘蛛时出现Scrapyd init错误全部内容,希望文章能够帮你解决python – 运行scrapy蜘蛛时出现Scrapyd init错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1205304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存