こんにちは私はいくつかのhtmlページをフェッチするためのscrapyに取り組んでいます、
私はスパイダーを作成し、spider.py
ファイル内のページから必要なデータをフェッチしました。ファイル内で、スパイダーの名前で動的に作成されpipeline.py
たものにすべてのデータを書き込みたいと思います。以下は私のコードですcsv file
pipeline.py
pipe.py:
from scrapy import log
from datetime import datetime
class examplepipeline(object):
def __init__(self):
dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
dispatcher.connect(self.spider_closed, signal=signals.spider_closed)
def spider_opened(self, spider):
log.msg("opened spider %s at time %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))
self.exampleCsv = csv.writer(open("%s(%s).csv"% (spider.name,datetime.now().strftime("%d/%m/%Y,%H-%M-%S")), "wb"),
delimiter=',', quoting=csv.QUOTE_MINIMAL)
self.exampleCsv.writerow(['Listing Name', 'Address','Pincode','Phone','Website'])
def process_item(self, item, spider):
log.msg("Processsing item " + item['title'], level=log.DEBUG)
self.exampleCsv.writerow([item['listing_name'].encode('utf-8'),
item['address_1'].encode('utf-8'),
[i.encode('utf-8') for i in item['pincode']],
item['phone'].encode('utf-8'),
[i.encode('utf-8') for i in item['web_site']]
])
return item
def spider_closed(self, spider):
log.msg("closed spider %s at %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))
結果:
--- <exception caught here> ---
File "/usr/lib64/python2.7/site-packages/twisted/internet/defer.py", line 133, in maybeDeferred
result = f(*args, **kw)
File "/usr/lib/python2.7/site-packages/Scrapy-0.14.3-py2.7.egg/scrapy/xlib/pydispatch/robustapply.py", line 47, in robustApply
return receiver(*arguments, **named)
File "/home/local/user/example/example/pipelines.py", line 19, in spider_opened
self.examplecsv = csv.writer(open("%s(%s).csv"% (spider.name,datetime.now().strftime("%d/%m/%Y,%H-%M-%S")), "wb"),
exceptions.IOError: [Errno 2] No such file or directory: 'example(27/07/2012,10-30-40).csv'
ここで実際にクモの名前はexample
上記のコードの何が問題なのかわかりません。スパイダー名で動的にcsvファイルを作成する必要がありますが、上記のエラーが表示されたら、そこで何が起こっているのか教えてください.........