爬虫内容存储
安装模块
安装方式: pip install pymongo
使用
无需权限认证
1 2 3 4 5 6
| from pymongo import MongoClient
client = MongoClient(host,port)
collection = client[db名][集合名]
|
需要权限认证
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from pymongo import MongoClient from urllib.parse import quote_plus
user = 'python' password = 'python' host = '127.0.0.1' port = 27017 uri = "mongodb://%s:%s@%s" % (quote_plus(user), quote_plus(password), host)
client = MongoClient(uri, port=port) collection = client.db名.集合名
|
添加数据
insert可以批量的插入数据列表,也可以插入一条数据
1 2
| collection.insert({一条数据}) collection.insert([{数据一},{数据二}])
|
查找数据
接收一个字典形式的条件,返回字典形式的整条数据
如果条件为空,则返回第一条
1 2 3 4 5
| ret = client.test.test.find_one({'name': 'test10001'}) print(ret) _ = ret.pop('_id') print(ret)
|
返回所有满足条件的结果,如果条件为空,则返回全部
结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
1 2 3 4 5 6
| rets = collection.find({"name":"test10005"}), for ret in rets: print(ret) for ret in rets: print(ret)
|
更新数据
collection.update({条件}, {'$set':{指定的kv或完整的一条数据}}, multi=False/True, upsert=False/True)
- multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用
- upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
- $set表示指定字段进行更新
1 2 3 4 5 6 7
| data = {'msg':'这是一条完整的数据1','name':'哈哈'} client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)
data = {'msg':'指定只更新msg___1'} client.test.test.update({}, {'$set':data}, upsert=True
|
1 2 3 4 5 6 7
| data = {'msg':'这是一条完整的数据2','name':'哈哈'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
data = {'msg':'指定只更新msg___2'} client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
|
删除数据
1 2
| collection.delete_one({"name":"test10010"})
|
1 2
| collection.delete_many({"name":"test10010"})
|
相关文章
Python基础
Python爬虫
Python反爬解决方案
Python爬虫
Python反爬解决方案
Scrapy爬虫
Scrapy爬虫
Python打包可执行文件