Python爬虫学习第十一天—pymongo模块使用

一、安装pymongo模块

python3 -m pip install pymongo

二、pymongo模块的使用

1、配置基础项

user = 'pytest' # 账号
password = 'python' # 密码
# host = '127.0.0.1' # host
host = '10.1.1.141' # host
port = 27017 # port
uri = "mongodb://%s:%s@%s" % (quote_plus(user),quote_plus(password),host)
# quote_plus函数:对url进行编码
# uri = mongodb://python:python@127.0.0.1
client = MongoClient(uri, port=port)   # 创建客户端链接对象

2、连接指定库及连接指定集合

dbtest = client['test']    ## 连接到指定的库,连接方式1,方式2:client.testcollection = client.test.stu   # 连接到指定库的指定集合

3、插入数据

插入一条数据:collection.insert_one({"name" : "lufei", "hometown" : "zhulu", "age" : 23, "gender" : 1})   插入多条数据:collection.insert_many([{"name" : "lufei001", "hometown" : "zhulu001", "age" : 32, "gender" : 1},{"name" : "lufei002", "hometown" : "zhulu002", "age" : 33, "gender" : 0}])

4、查询数据

查询示例的所有数据如下:
{‘name’: ‘gj’, ‘gender’: 0.0}
{‘name’: ‘gj’, ‘gender’: 0.0}
{‘name’: ‘gj’, ‘gender’: 0.0}
{‘name’: ‘郭靖’, ‘hometown’: ‘蒙古’, ‘age’: 20.0, ‘gender’: 0.0}
{‘name’: ‘黄蓉’, ‘hometown’: ‘桃花岛’, ‘age’: 18.0, ‘gender’: ‘1’}
{‘name’: ‘华筝’, ‘hometown’: ‘蒙古’, ‘age’: 18.0, ‘gender’: ‘1’}
{‘name’: ‘黄药师’, ‘hometown’: ‘桃花岛’, ‘age’: 40.0, ‘gender’: 0.0}
{‘name’: ‘段誉’, ‘hometown’: ‘大理’, ‘age’: 16.0, ‘gender’: 0.0}
{‘name’: ‘段王爷’, ‘hometown’: ‘大理’, ‘age’: 45.0, ‘gender’: 0.0}
{‘name’: ‘洪七公’, ‘hometown’: ‘华筝’, ‘age’: 18.0, ‘gender’: 0.0}
{‘name’: ‘lufei’, ‘hometown’: ‘zhulu’, ‘age’: 23, ‘gender’: 1}
{‘name’: ‘lufei001’, ‘hometown’: ‘zhulu’, ‘age’: 32, ‘gender’: 0}
{‘name’: ‘lufei002’, ‘hometown’: ‘zhulu’, ‘age’: 335, ‘gender’: 1}

4.1 查询单条数据

ret = client.test.stu.find_one({'name': '郭靖'})
print(ret)

结果:

4.2 查询所有数据

rets = client.test.stu.find({},{'_id':0})  # 查询所有数据,不输出_id字段

结果:

4.3 条件查询

01)$lt:小于
rets = collection.find({'age':{'$lt':20}},{'_id':0})    # $lt:查询年龄小于20的数据,且不输出_id字段

结果:

02)$lte:小于等于
rets = collection.find({'age':{'$lte':16}},{'_id':0})    # $lte:查询年龄小于等于18的数据,且不输出_id字段

结果:

03)$gt:大于
rets = collection.find({'age':{'$gt':23}},{'_id':0})    # $gt:查询年龄大于23的数据,且不输出_id字段

结果:

04)$gte:大于等于
rets = collection.find({'age':{'$gte':23}},{'_id':0})    # $gte:查询年龄大于等于23的数据,且不输出_id字段

结果:

05)$ne:不等于
rets = collection.find({'age':{'$ne':23}},{'_id':0})    # $ne:查询年龄不等于23的数据,且不输出_id字段

结果:

06)等于,默认就是等于的判断
rets = collection.find({'age':23},{'_id':0})    # :查询年龄不# 等于23的数据,且不输出_id字段;默认是等于判断, 没有运算符

结果:

4.4 逻辑运算

01)and运算—且运算
rets = collection.find({'age':{'$ne':35},'name':'黄蓉'},{'_id':0})    # 此示例是逻辑and的运算方式,$ne:查询年龄不等于23的数据,且性别为男性的(gender为1则为男性,为0则为女性),且不输出_id字段
结果:

02)$or运算符—或运算
rets = collection.find({'$or':[{'age':{'$gt':23}},{'gender':1}]},{'_id':0})  # 逻辑or使用方式,查询年龄大于23或性别为男性的人

结果:

03)and与or同时使用
rets = collection.find({'$or':[{'age':{'$gt':23}},{'gender':1}],'name':'黄药师'},{'_id':0})  # 逻辑$or和逻辑and同时使用,查询年龄大于23或性别为男性,且名字叫“黄药师”的人。

结果:

4.5 范围查询使用$in, $nin(不在…内) 判断数据是否在某个数组内

rets = collection.find({'age':{'$in':[18,32,33]}},{'_id':0})   # 范围查询,查询年龄为18,32,33的人

结果:

4.6 正则表达式:$regex

rets = client.test.stu.find({"name":{"$regex":"lufei*"}},{'_id':0})       # 通过正则表达式查询多条数据,且不输出_id字段

结果:

4.7 自定义查询

rets = collection.find({'$where':'function() {return this.age > 30;}'})           # 自定义查询,查询年龄大于30的学生

结果:

4.8 ship和limit

01)limit()
rets = collection.find().limit(2)   # limit(num)限制,查询前两个

结果:

02)skip()
rets = collection.find().skip(10)   # skip(num)跳过多少,跳过前10条,查询后面的。

结果:

03 limit()和skip同时使用
rets = collection.find().limit(3).skip(10)    # 同时使用skip()和limit(),这两条效果相同,都是先ship后limit。但是先使用skip在使用limit的效率要高于前者

结果:

4.9 投影:在查询到的返回结果中, 只选择必要的字段

rets = collection.find({},{'_id':0,'name':1,'gender':1})  # 投影,只输出name和gender两个字段

结果:

5、Mongodb的更新:$set

更新单条数据:collection.update_one({'name':'lufei'},{"$set":{'name':'feilu'}})

结果:

更新多条数据:collection.update_many({'name':'gj'},{"$set":{"name":"guojin"}})或单行方式:collection.update_many({'name':'gj'},{"$set":{"name":"guojin"}})

结果:

6、Mongodb删除数据

collection.delete_one({'name':'lufei5'})  # 删除单条数据
collection.delete_many({'name':{'$regex':"lufeia*"}})   # 删除多条数据

Python爬虫学习第十一天---pymongo模块使用相关推荐

  1. Python爬虫学习(十一)下载验证码图片

    本文是继前面爬取登录教务系统时,遇到验证码登录的遗留问题探讨! 思路: 下载登录教务系统时的图片,打开读取,人工识别,手动写入再结合账户登录. 目录 一.获取验证码图片 二.带验证码图片的reques ...

  2. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  3. Python爬虫学习第二章-1-requests模块简介

    Python爬虫学习第二章-1-requests模块简介   这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...

  4. python爬虫正则表达式实例-python爬虫学习三:python正则表达式

    python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...

  5. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

  6. Python爬虫学习框架介绍

    对于初学者来说,摸索清楚一个领域的知识体系往往比单纯学习某个技术要重要得多,因为技术总会跟随时代发生快速变化,而知识体系往往变化较小,今天我们以自学的角度来了解一下Python爬虫的知识体系吧. 一. ...

  7. Python爬虫学习总结

    Python爬虫学习总结 一.前提 请求网站并提取数据的自动化程序, 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...

  8. 铁憨憨的Python 爬虫学习 Python_Learn

    通过网课和万能的B站学习 Python 和爬虫(本文基本是对视频内程序和内容的笔记内容) B站 Python 爬虫学习链接 Python 学习网络爬虫主要分3个大的版块:明确目标,抓取,分析,存储 明 ...

  9. python爬虫学习笔记 3.9 (了解参考:训练Tesseract)

    python爬虫学习笔记 3.9 (了解参考:训练Tesseract) 参考阅读:训练Tesseract 要使用 Tesseract 的功能,比如后面的示例中训练程序识别字母,要先在系统中设置一 个新 ...

最新文章

  1. 蜘蛛爬虫网络高像素图片抓取工具[搜索引擎]
  2. “达克效应”让人们信心满满还是畏惧不前?- 更应该是谨慎地冒险
  3. Java设计模式(十九):解释器设计模式
  4. linux常用svn命令
  5. 100路监控摄像头需要使用核心交换机吗?
  6. 10个奇葩的代码注释,笑出声!
  7. Linux文件系统性能测试工具fdtree和iozone
  8. Android学习笔记(24):进度条组件ProgressBar及其子类
  9. Linux如何自动获取IP地址
  10. rdlc实现动态插入图片
  11. c语言程序如何实现分组,c程序-实现随机分组.ppt
  12. 2017年UI、Web、微服务顶级框架都有啥?不看就落伍了1
  13. 新概念51单片机c语言教程doc,新概念51单片机C语言教程实例代码.doc
  14. 商务办公软件应用与实践【4】
  15. 智慧园区SaaS管理系统解决方案:赋能园区实现信息化、数字化管理
  16. pid温度控制算法c语言程序,温度控制的PID算法的C语言程序
  17. MSP430开发环境配置
  18. 【本科课程学习】数据库考试复习题(带答案)
  19. struct结构体里能放函数吗?
  20. 旅游自助系统之后台管理系统设计

热门文章

  1. 【21】processing-输出(中文)
  2. 考研计算机需要学复变函数与积分变换,《复变函数与积分变换》期末考研重点复习试题...
  3. nfs 安装教程 centos6
  4. VBS基础篇 - 循环语句(2) - While...Wend
  5. js-运动总结(常见运动效果)
  6. e海方舟电子书制作软件 v1.0绿色版下载
  7. 网吧管理系统(javafx)
  8. HDU - 2619 Love you Ten thousand years
  9. Glance Image 卡在queued状态
  10. iPhone5分辨率兼容(iPhone3,4,4S)