3. insert()添加数据
insert可以批量的插入数据列表 也可以插入一台哦数据
3.1 添加一条数据
返回插入数据的id
ret collection.insert({ name : test10000 , age : 21})
print(ret)
3.2 添加多条数据
返回Object对象构成的列表
item_list [{ name : test1001{} .format(i)} for i in range(10)]
rets collection.insert(item_list)
print(rets)
for ret in rets:
print(ret)
4. find_one()查找一条数据
接收一个字典形式的条件 返回字典形式的整条数据如果条件为空 则返回第一条
ret collection.find_one({ name : test10011 })
print(ret) #包含mongodb的ObjectId对象的字典
_ ret.pop( _id ) #清除mongodb的objectd对象的k , v
print(ret)
5. find()查看全部数据
返回所有满足条件的结果 如果条件为空 则返回全部结果是一个Cursor游标对象 是一个可迭代对象 可以类似读文件的指针 但是只能够进行一次读取
rets collection.find({ name : test10005 })
for ret in rets:
print(ret)
for ret in rets: #此时rets中没有
print(ret)
6. updata()更新数据 全文档覆盖或指定键值 更新一条或多条
语法: collection.update({条件}, { $set :{指定的kv或完整的一条数据}}, multi False/True,upsert False/Truemulti参数:默认为False,表示更新一条; multi True则更新多条; multi参数必须和$set一起使用upsert参数:默认为False; upsert True则先查询是否存在,存在则更新;不存在就插入$set表示指定字段进行更新6.1 更新一条数据;全文档覆盖;存在就更新,不存在就插入
data ( msg : 这是一条完整的数据1 , name : 哈哈 }
collection.update({ haha : heihei } { $set : data} upsert True)
6.2 更新多条数据;全文档覆盖;存在就更新,不存在就插入
data { msg : 这是一条完整的数据2 , name : 哈哈 } #该完整数据是先查询后获取的collection.update({}, { $set :data}, multi True, upsert True)
6.3 更新一条数据;指定键值;存在就更新 不存在就插入
data { msg : 指定只更新msg___1 }
collection.update({},{ $set :data}, upsert True)
6.4更新多条数据;指定键值;存在就更新 不存在就插入入
data { msg : 指定只更新msg_2 }
collection.update({}, { $set :data}, multi True,upsert True)
7. delete_one()删除一条数据
collection.delete_one({ name : test10001 })7.1 delete_many()删除全部数据
collection.delete_many({ name : test10810 })8 pymongo模块其他api
查看pymongo官方文档或源代码 http://api.mongodb.com/python/current/ 二、scrapy-爬虫框架scrapy官方文档
中文版 Scrapy 2.5 documentation — Scrapy 2.5.0 文档 (osgeo.cn)源文档 Scrapy 2.5 documentation — Scrapy 2.5.0 documentation 1.学前应知 1 scrap的概念和流程1. 概念
Scrapy是一个python编写的开源网络爬虫框架 它是一个被设计用于爬取网络数据 提取结构性数据的框架----- 少量的代码就能够快速的抓取
2. 工作流程
其流程描述如下
爬虫中起始的url构造成request对象-- 爬虫中间件-- 引擎-- 调度器调度器把request-- 引擎-- 下载中间件--- 下载器下载器发送请求 获取response响应---- 下载中间件---- 引擎--- 爬虫中间件--- 爬虫爬虫提取url地址 组装成request对象---- 爬虫中间件--- 引擎--- 调度器 重复步骤2爬虫提取数据--- 引擎--- 管道处理和保存数据 2 scrapy的三个内置对象 requests请求对象 由url、method、post_data、headers等构成response响应对象 由url、body、status、headers等构成item数据对象 本质是一个字典 3 scrapy中的模块的具体作用 爬虫中间件和下载中间件只是运行逻辑的位置不同 作用是重复的:如替换UA等 4 安装与项目开发流程介绍1. 安装
pip/pip3 install scrapy2. 开发流程
1. 创建项目
scrapy startproject mySpider2. 生成一个爬虫
scrapy genspider itcast itcast.cn3. 提取数据
根据网站结构在spider中实现数据采集相关内容4. 保存数据
使用pipeline进行后续处理和保存 2. 项目流程 重点 1 创建项目 以pycharm为例创建scrapy项目的命令 在pycharm底部的终端中输入该命令
scrapy startproject 项目名字 ---- eg: scrapy startprojet myspider创建成功有
2 创建爬虫通过命令创建出爬虫文件 爬虫文件为主要的代码作业文件 通常一个网站的爬取动作都会在爬虫文件中进行编写。
命令 ---- 在项目路径下执行 、
爬虫的名字 作为爬虫运行时的参数
允许爬取的域名: 为对于爬虫设置的爬取范围 设置之后用于过滤要爬取的url 如果爬取的url与允许的域不通则被过滤掉。
eg
cd myspider # 要转到项目目录下才行scrapy genspider w3school www.w3school.com.cn结果如下
运行爬虫
scrapy crawl w3school -- 终端上 3 完善爬取1. 爬取传智播客的老师



