Python爬虫存数据到MongoDB需安装PyMongo库、用MongoClient连接数据库、调用insert_one或insert_many插入数据,全过程高效适配非结构化数据,建议添加索引与异常处理以提升稳定性。

Python爬虫将数据存入MongoDB数据库,主要通过安装驱动库、连接数据库、插入文档三步完成。整个过程简单高效,适合存储非结构化或半结构化的网页抓取数据。
安装PyMongo驱动
要让Python与MongoDB交互,需先安装官方推荐的PyMongo库。使用pip命令即可快速安装:
- 打开终端或命令行工具
- 执行 pip install pymongo
安装完成后,在Python脚本中导入即可使用:
from pymongo import MongoClient连接MongoDB数据库
确保本地或服务器已运行MongoDB服务。通过MongoClient建立连接:
立即学习“Python免费学习笔记(深入)”;
client = MongoClient('localhost', 27017) # 连接本地MongoDB
db = client['spider_db'] # 指定数据库名
collection = db['news_data'] # 指定集合名
若使用远程或带认证的MongoDB,可使用URI方式连接:
client = MongoClient('mongodb://user:password@host:port/')
将爬虫数据插入MongoDB
假设你用requests和BeautifulSoup抓取了网页信息,并整理成字典格式的数据:
data = {
'title': '新闻标题',
'url': 'https://example.com/article',
'content': '新闻正文内容...',
'crawl_time': '2025-04-05'
}
调用insert_one()方法将单条数据写入:
collection.insert_one(data)
若有多条数据,可用insert_many()批量插入:
data_list = [data1, data2, data3] collection.insert_many(data_list)
注意事项与优化建议
实际使用中注意以下几点提升稳定性和效率:
- 插入前检查字段完整性,避免空值导致后续分析困难
- 为常用查询字段(如url)建立索引,防止重复抓取:collection.create_index("url", unique=True)
- 捕获异常以防数据库断开导致爬虫崩溃:
try:
collection.insert_one(data)
except Exception as e:
print(f"存储失败:{e}")
基本上就这些。只要连接成功,存数据就像操作字典一样自然。不复杂但容易忽略的是索引和异常处理,加上之后更稳定。










