本文是本项目最后一篇,撒花!
前三篇传送门:
【爬虫】scrapy下载股票列表(一)——对接selenium中间件:
https://blog.youkuaiyun.com/yao09605/article/details/94147708
【爬虫】scrapy下载股票列表(二)—— 内容解析及中间件模拟翻页:
https://blog.youkuaiyun.com/yao09605
【爬虫】scrapy下载股票列表(三)—— 设置日志:
https://blog.youkuaiyun.com/yao09605/article/details/94559568
正式开始
上篇完成了翻页工作之后,下面我们就把下载的数据存储到mongodb里面,mongodb是一种面向对象的数据库,每一条文档都是一个字典类型,可以储存复杂的数据结构。
下面这个表格是mongoDB与一般关系型数据库之间的联系和区别,详情见:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
传送门,mongodb的安装和配置:https://www.cnblogs.com/wx1993/p/5187530.html
然后pip install pymongo
安装python包
下面开始看代码:
在settings.py
中加入
MONGO_URI = '127.0.0.1:27017' # 数据库地址
MONGO_DB = 'stock' # 数据库库名
将pipeline中间件打开
# Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'stock.pipelines.StockPipeline': 300,
}
找到项目下面的items.py
这里定义你要存进mongodb的结构体
import scrapy
class StockItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
stock_id = scrapy.Field() # 股票编号
stock_name = scrapy.Field() # 股票名称
last_price = scrapy.Field() # 最新价格
increase_percent = scrapy.Field() # 最新涨幅
increase_amount = scrapy.Field() # 最新增长额
turn_over_hand = scrapy.Field() # 成交量(手)
turn_over_amount = scrapy.Field() # 成交额
amplitude = scrapy.Field() # 振幅
highest = scrapy.Field() # 最高
lowest = scrapy.Field() # 最低
today_open = scrapy.Field() # 今开
yest_close = scrapy.Field() # 昨收
quantity_relative_ratio = scrapy.Field() # 量比
turn_over_rate = scrapy.Field() # 换手率
PE_ratio = scrapy.