在数据爬取过程中,数据保存是一个非常关键的环节。MongoDB作为一个非关系型数据库,其具有高可扩展性、高性能、高可用性、高灵活性等特点,成为了数据爬取中常用的数据库之一。本文将结合实例,介绍如何将Python爬虫数据保存到MongoDB数据库中。
一、安装MongoDB
在开始之前,需要先安装MongoDB数据库。可以在官网下载安装包进行安装,也可以使用命令行进行安装。
二、安装pymongo
pymongo是Python操作MongoDB的库,需要先安装才能进行操作。可以使用pip命令进行安装。
pip install pymongo
三、连接MongoDB
连接MongoDB的方法有两种:本地连接和远程连接。本地连接是指在本地计算机上运行MongoDB数据库,远程连接是指连接远程MongoDB数据库。
本地连接:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
远程连接:
import pymongo
client = pymongo.MongoClient("mongodb://用户名:密码@IP地址:端口/数据库名")
四、创建数据库和集合
在MongoDB中,一个数据库可以包含多个集合,一个集合可以包含多个文档。在Python中,可以通过以下代码创建数据库和集合:
db = client["mydatabase"]
col = db["customers"]
五、插入数据
插入数据是将爬取到的数据保存到MongoDB中的重要步骤。在Python中,可以使用insert_one()或insert_many()方法将数据插入到MongoDB中。
insert_one()方法:
mydict = { "name": "John", "address": "Highway 37" }
x = col.insert_one(mydict)
print(x.inserted_id)
insert_many()方法:
mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"}
]
x = col.insert_many(mylist)
print(x.inserted_ids)
六、查询数据
在MongoDB中,可以使用find()方法查询数据。在Python中,可以使用以下代码查询数据:
for x in col.find():
print(x)
七、更新数据
在MongoDB中,可以使用update_one()或update_many()方法更新数据。在Python中,可以使用以下代码更新数据:
update_one()方法:
myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
col.update_one(myquery, newvalues)
update_many()方法:
myquery = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }
x = col.update_many(myquery, newvalues)
print(x.modified_count, "documents updated.")
八、删除数据
在MongoDB中,可以使用delete_one()或delete_many()方法删除数据。在Python中,可以使用以下代码删除数据:
delete_one()方法:
myquery = { "address": "Mountain 21" }
col.delete_one(myquery)
delete_many()方法:
myquery = { "address": {"$regex": "^S"} }
x = col.delete_many(myquery)
print(x.deleted_count, " documents deleted.")
九、