python scrapy-输出csv文件为空

python scrapy-输出csv文件为空,python,web-scraping,scrapy,export-to-csv,Python,Web Scraping,Scrapy,Export To Csv,我的主要蜘蛛代码: from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector from Belray_oil.items import BelrayOilItem class BelraySpider(BaseSpider): name = "Belray_oil" allowed_domains = ["mxdirtrider.com/"] start_

我的主要蜘蛛代码:

    from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from Belray_oil.items import BelrayOilItem

class BelraySpider(BaseSpider):
    name = "Belray_oil"
    allowed_domains = ["mxdirtrider.com/"]
    start_urls = ["http://www.mxdirtrider.com/h-products/bel-ray/2011-02/pr-bel-ray-accessories-lubricant-oil-2-stroke-2t-mineral-engine.htm?ref=search"]

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    name = hxs.select("//div[@id='product-title']/h1/span/text()").extract()
    MSRP = hxs.select("//div[@id='price']/span[1]/text()").extract()
    Sale = hxs.select("//div[@id='price']/span[2]/strong/text()").extract()
    print name, MSRP, Sale
我的项目文件:

    from scrapy.item import Item, Field

class BelrayOilItem(Item):
    name = Field()
    MSRP = Field()
    Sale = Field()
我运行时的终端日志输出:scrapy crawl Belray_oil-o items.csv-t csv

    2013-07-05 18:03:25-0400 [scrapy] INFO: Scrapy 0.14.4 started (bot: Belray_oil)
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Enabled extensions: FeedExporter, LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, MemoryUsage, SpiderState
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, RedirectMiddleware, CookiesMiddleware, HttpCompressionMiddleware, ChunkedTransferMiddleware, DownloaderStats
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Enabled item pipelines: 
2013-07-05 18:03:25-0400 [Belray_oil] INFO: Spider opened
2013-07-05 18:03:25-0400 [Belray_oil] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2013-07-05 18:03:25-0400 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2013-07-05 18:03:26-0400 [Belray_oil] DEBUG: Crawled (200) <GET http://www.mxdirtrider.com/h-products/bel-ray/2011-02/pr-bel-ray-accessories-lubricant-oil-2-stroke-2t-mineral-engine.htm?ref=search> (referer: None)
2013-07-05 18:03:26-0400 [Belray_oil] ERROR: Spider error processing <GET http://www.mxdirtrider.com/h-products/bel-ray/2011-02/pr-bel-ray-accessories-lubricant-oil-2-stroke-2t-mineral-engine.htm?ref=search>
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1182, in mainLoop
        self.runUntilCurrent()
      File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 805, in runUntilCurrent
        call.func(*call.args, **call.kw)
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 381, in callback
        self._startRunCallbacks(result)
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 489, in _startRunCallbacks
        self._runCallbacks()
    --- <exception caught here> ---
      File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 576, in _runCallbacks
        current.result = callback(current.result, *args, **kw)
      File "/usr/lib/python2.7/dist-packages/scrapy/spider.py", line 62, in parse
        raise NotImplementedError
    exceptions.NotImplementedError: 

2013-07-05 18:03:26-0400 [Belray_oil] INFO: Closing spider (finished)
2013-07-05 18:03:26-0400 [Belray_oil] INFO: Dumping spider stats:
    {'downloader/request_bytes': 310,
     'downloader/request_count': 1,
     'downloader/request_method_count/GET': 1,
     'downloader/response_bytes': 13379,
     'downloader/response_count': 1,
     'downloader/response_status_count/200': 1,
     'finish_reason': 'finished',
     'finish_time': datetime.datetime(2013, 7, 5, 22, 3, 26, 204316),
     'scheduler/memory_enqueued': 1,
     'spider_exceptions/NotImplementedError': 1,
     'start_time': datetime.datetime(2013, 7, 5, 22, 3, 25, 970550)}
2013-07-05 18:03:26-0400 [Belray_oil] INFO: Spider closed (finished)
2013-07-05 18:03:26-0400 [scrapy] INFO: Dumping global stats:
    {'memusage/max': 116150272, 'memusage/startup': 116150272}
2013-07-05 18:03:25-0400[scrapy]信息:scrapy 0.14.4已启动(机器人:Belray_oil)
2013-07-05 18:03:25-0400[scrapy]调试:启用的扩展:FeedExporter、LogStats、TelnetConsole、CloseSpider、WebService、CoreStats、MemoryUsage、SpiderState
2013-07-05 18:03:25-0400[scrapy]调试:启用的下载中间件:HttpAuthMiddleware、DownloadTimeoutMiddleware、UserAgentMiddleware、RetryMiddleware、DefaultHeadersMiddleware、RedirectMiddleware、Cookies中间件、HttpCompressionMiddleware、ChunkedTransferMiddleware、DownloadersStats
2013-07-05 18:03:25-0400[scrapy]调试:启用的spider中间件:HttpErrorMiddleware、OffsiteMiddleware、RefererMiddleware、UrlLengthMiddleware、DepthMiddleware
2013-07-05 18:03:25-0400[scrapy]调试:启用的项目管道:
2013-07-05 18:03:25-0400[Belray_oil]信息:卡盘已打开
2013-07-05 18:03:25-0400[Belray_oil]信息:爬网0页(0页/分钟),刮取0项(0项/分钟)
2013-07-05 18:03:25-0400[scrapy]调试:Telnet控制台在0.0.0.0上侦听:6023
2013-07-05 18:03:25-0400[scrapy]调试:Web服务侦听0.0.0.0:6080
2013-07-05 18:03:26-0400[Belray_oil]调试:爬网(200)(参考:无)
2013-07-05 18:03:26-0400[Belray_oil]错误:十字轴错误处理
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.7/dist-packages/twisted/internet/base.py”,第1182行,在mainLoop中
self.rununtlcurrent()
文件“/usr/lib/python2.7/dist packages/twisted/internet/base.py”,第805行,在rununtlcurrent中
call.func(*call.args,**call.kw)
文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,第381行,在回调中
自启动返回(结果)
文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,第489行,在startRunCallbacks中
self.\u runCallbacks()
---  ---
文件“/usr/lib/python2.7/dist packages/twisted/internet/defer.py”,第576行,在runCallbacks中
current.result=回调(current.result,*args,**kw)
文件“/usr/lib/python2.7/dist packages/scrapy/spider.py”,第62行,在parse中
引发未实现的错误
异常。未实现错误:
2013-07-05 18:03:26-0400[Belray_oil]信息:关闭十字轴(已完成)
2013-07-05 18:03:26-0400[美石油]信息:倾倒蜘蛛统计数据:
{'downloader/request_bytes':310,
“下载程序/请求计数”:1,
“downloader/request\u method\u count/GET”:1,
“downloader/response_字节”:13379,
“下载程序/响应计数”:1,
“下载程序/响应状态\计数/200”:1,
“完成原因”:“完成”,
“完成时间”:datetime.datetime(2013,7,5,22,3,26,204316),
“调度程序/内存已排队”:1,
“spider_异常/未实现错误”:1,
“开始时间”:datetime.datetime(2013,7,5,22,3,25970550)}
2013-07-05 18:03:26-0400[Belray_oil]信息:十字轴关闭(已完成)
2013-07-05 18:03:26-0400[scrapy]信息:倾销全球统计数据:
{'memusage/max':116150272,'memusage/startup':116150272}
输出中的CSV总是空的,我无法准确地找出问题所在。
请帮忙

您应该在
parse
方法中返回

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from Belray_oil.items import BelrayOilItem 


class BelraySpider(BaseSpider):
    name = "Belray_oil"
    allowed_domains = ["mxdirtrider.com"]
    start_urls = [
        "http://www.mxdirtrider.com/h-products/bel-ray/2011-02/pr-bel-ray-accessories-lubricant-oil-2-stroke-2t-mineral-engine.htm?ref=search"]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        item = BelrayOilItem()
        item['name'] = hxs.select("//div[@id='product-title']/h1/span/text()").extract()
        item['MSRP'] = hxs.select("//div[@id='price']/span[1]/text()").extract()
        item['Sale'] = hxs.select("//div[@id='price']/span[2]/strong/text()").extract()
        return item
然后,在
items.csv
中,您将有:

name,msrp,sale
Bel-Ray 2T Mineral Engine 2-Stroke  ,MSRP $9.75,$8.13
希望有帮助