Ho trovato la risposta, in basso. In breve, l'indentazione errata nella ItemPipeline ha causato il ritorno di None.Scrapy Spider restituisce None anziché Item
Ho cercato di scrivere un CrawlSpider in Scrapy, non avendo mai lavorato con Python prima. Lo Spider esegue la scansione, chiama la funzione di callback, estrae i dati e riempie l'elemento, ma restituisce sempre Nessuno. L'ho provato con una chiamata di articoli di stampa, tutto era in ordine. Ho provato questo con rendimento e rendimento (anche se ancora non capisco la differenza). Francamente, sono fuori di idee. In basso è il function.//edit callback aggiunto il codice di ragno così
class ZeitSpider(CrawlSpider):
name= xxxx
allowed_domains = ['example.com']
start_urls = ['http://www.example.com/%d/%d' %(JAHR,39)]
rules = (Rule(SgmlLinkExtractor(restrict_xpaths=('//ul[@class="teaserlist"]/li[@class="archiveteaser"]/h4[@class="title"]')),callback='parse_url',follow=True),)
def parse_url(self,response):
def parse_url(self,response):
hxs = HtmlXPathSelector(response)
article = Article()
article['url']= response.url.encode('UTF-8',errors='strict')
article['author']= hxs.select('//div[@id="informatives"]/ul[@class="tools"]/li[@class="author first"]/text()').extract().pop().encode('UTF-8',errors='strict')
article['title']= hxs.select('//div[@class="articleheader"]/h1/span[@class="title"]/text()').extract().pop().encode('UTF-8',errors='strict')
article['text']= hxs.select('//div[@id="main"]/p/text()').extract().pop().encode('UTF-8',errors='strict')
article['excerpt'] = hxs.select('//p[@class="excerpt"]/text()').extract().pop().encode('UTF-8',errors='strict')
yield article
e la definizione oggetto
class Article(Item):
url=Field()
author=Field()
text=Field()
title=Field()
excerpt=Field()
GRAZIE. Il messaggio di errore era l'oggetto ''NoneType' non ha attributo 'iterkeys''. Forse può aiutare Google a reindirizzare qui. – KrisWebDev