のNoneを返します。要するに、ItemPipelineで間違ったインデントは、それがNoneを返すために発生します。Scrapyスパイダーは、私がダウンして以下、答えを見つけた代わりに、項目
私は前のpythonで働いたことはない持つ、ScrapyでCrawlSpiderを書くしようとしてきました。スパイダーは、クロールコールバック関数を呼び出して、データを抽出し、項目を埋め、それは常にNoneを返します。私は印刷物の記事の呼び出しでそれをテストしました、すべてが順調でした。私は歩留まりとリターンの両方でこれを試しましたが(まだ違いは分かりませんが)。率直に言って、私はアイデアがありません。ダウン以下のコールバックfunction.//editも同様
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
アイテム定義をスパイダーコードを追加している
class Article(Item):
url=Field()
author=Field()
text=Field()
title=Field()
excerpt=Field()
ありがとうございます。 '' NoneType ''オブジェクトには属性 'iterkeys'がありませんでした。おそらく、Googleがここにリダイレクトするのを助けるかもしれない。 – KrisWebDev