这里我没有按照书本的例子,下面是参考别人的代码写的,我个人觉得MongoDB这样写会比较清晰,适合新手
存入MongoDB之前,需要对MongoDB有稍微的了解,比如装完MongoDB以后,要先启动服务,不然启动scrapy爬取的时候,会一直报错,因为你的数据库根本没有运行,导致导入失败
启动MongoDB服务命令(每个人都不一样,看安装的路径),在cmd输入:
mongod.exe --dbpath H:\MongoDB\data
在scrapy里的"settings"增加数据库的"地址","端口","数据库名","集合名"这"四"个必要的参数:
计算机本地的地址:
- MONGO_HOST='127.0.0.1'
MONGO_DB默认的端口是:27017 - MONGO_PORT=27017
库名和集合名则命名随意: - MONGO_DB='Books'
- MONGO_COLL='book_info'
以上,settings里面的设置就算完成了,下来安装pymongo库,安装完成后,Pipeline中这么写:
from scrapy.conf import settings
class MongoDBPipeline(object):
def __init__(self):
self.client=pymongo.MongoClient(host=settings['MONGO_HOST'],port=settings['MONGO_PORT'])
self.db=self.client[settings['MONGO_DB']]
self.post=self.db[settings['MONGO_COLL']]
def process_item(self,item,spider):
postItem=dict(item)
#insert()方法只接受字典,故这里需要转化下
self.post.insert(postItem)
return item
在settings激活下Pipeline
运行:scrapy crawl books
爬取完毕后,打开数据库,可以看到,所有的数据都写在里面了,完成.