scrapy把数据保存到mongodb
2021/11/2 19:13:22
本文主要是介绍scrapy把数据保存到mongodb,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
scrapy数据存进mongodb
第一步,settings.py添加
ITEM_PIPELINES = { # 'scrapy_runklist.pipelines.ScrapyRunklistPipeline': 300, 'scrapy_runklist.pipelines.ScrapyWeiBoPipeline': 300, } # mongodb配置 MONGO_HOST = "127.0.0.1" # 主机IP MONGO_PORT = 27017 # 端口号 MONGO_DB = "ranklist" # 库名 MONGO_COLL_WEIBO = "weibo" # collection名 # MONGO_USER = "simple" #用户名 # MONGO_PSW = "test" #用户密码
第二步,item.py添加
class WeiboItem(scrapy.Item): id = scrapy.Field() word = scrapy.Field() url = scrapy.Field()
第三步,spider.py添加
def parse(self, response): json_data = response.json() num = 0 for i in json_data["data"]["realtime"]: weiboItem = WeiboItem() if num == 10: break weiboItem["id"] = num weiboItem["word"] = i["word"] url = "https://s.weibo.com/weibo?q=%23{}%23".format(i["word"]) weiboItem["url"] = url num += 1 yield weiboItem
第四步,pipline.py添加
import pymongo from scrapy.utils.project import get_project_settings settings = get_project_settings() class ScrapyWeiBoPipeline: def __init__(self): # 链接数据库 client = pymongo.MongoClient(host=settings['MONGO_HOST'], port=settings['MONGO_PORT']) self.db = client[settings['MONGO_DB']] # 获得数据库的句柄 self.coll = self.db[settings['MONGO_COLL_WEIBO']] # 获得collection的句柄 # 数据库登录需要帐号密码的话 # self.db.authenticate(settings['MONGO_USER'], settings['MONGO_PSW']) def process_item(self, item, spider): print("pipline item ==== ", item) postItem = dict(item) # 把item转化成字典形式 self.coll.insert(postItem) # 向数据库插入一条记录 return item # 会在控制台输出原item数据,可以选择不写
这篇关于scrapy把数据保存到mongodb的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享