Python爬虫存储数据
存储数据的几种方式:1.JSON文件的存储:是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集,在python中分别以list和dict组成 <<<<<<<<返回的是一个字典常用于数据解析>>>>>>>>>json模块提供的四个功能: s = "{'name':'张三'}" --->>>json数据1.json.dumps(obj,ensure_ascii = False(指:不要再随意转换十六进制了就输出中文)) ---->>>实现python类型转化为json字符串,返回一个str对象,把一个python对象编码转换成json对象2.json.loads() ---->>>把json格式字符串解码转化成python对象,从json到python的类型转化3.json.dump() ----->>>将python内置类型序列化为json对象后写入文件4.json.load() ----->>>读取文件中json形式的字符串转化成python对象2.CSV文件的存储:是一种以.csv结尾的文件(针对于Excel文件来说)1.所有的值都是字符串向csv文件中写入数据:1.引入csv模块 import csv2.使用我open()函数创建csv文件 with open("student.csv","a+",newline='') as file:3.借助csv.writer()创建writer对象 writer = csv.writer(file)4.调用writer对象的writerow()方法写入一行数据 writer.writerow([])5.调用writer对象的writerows()方法写入多行数据 lst = [[][]]writer.writerows(lst)从csv文件读取数据:1.引入csv模块 import csv2.使用open()函数打开csv文件 with open("student.csv","r",newline='') as file:3.借助csv.read()创建reader对象 reader = csv.reader(file)4.读到的每一行都是一个列表 for row in reader:print(row)3.Excel表格存储数据:以 .xlsx 结尾的文件称为Excel文件,也称为一个工作簿(包含n多个sheet表格),每一个格子称为单元格 -->>import openpyxl向Excel中写入数据:1.创建工作簿对象 openpyxl.Workbook()2.获取活动工作表对象 wb.active3.获取单元格 sheet[单元格名称('A1')]4.向单元格中写入数据 cell.value = 值5.向Excel中写入一行数据 sheet.append(列表)6.保存Excel文件 wb.save()从Excel中读取数据:1.加载工作簿对象 openpyxl.load_workbook(文件名)2.获取活动工作表对象 wb.active3.获取单元格 sheet[单元格名称]4.获取单元格的值 cell.value5.获取一系列格子 sheet['A'],sheet[3],sheet['A:C']6.获取整个表格的所有行 sheet.rows4.MySQL数据库存储数据:MySQL(数据库管理系统)的数据类型:1.数值类型:int (4个字节) float (4个字节) integer (与int同义词) double (8个字节)2.字符串类型: char (固定长度字符串) varchar (可变长度字符串)3.日期/时间类型: Date:YYY-MM-DD Datetime:YYYY-MM-DD HH:MM:SS Time: HH:MM:SSSQL(结构化查询语言)语言包含4个部分:1.数据定义语言 (如 create(创建),drop(删除),alter(修改)等语句) ----->>>针对数据库或表2.数据查询语言 (select语句)3.数据操纵语句 (insert(新增),delete(删除),update(修改)语句) ---->>>针对表中的数据4.数据控制语句 (如 grant(赋予权限),revoke(回收权限),commit(提交事务),rollback(回滚事务)等语句)SQL数据库名:database表名: table行: row列: column索引: index主键(不允许重复 可设置auto_increment表示自动增长) : primary keySQL定义语言:1.创建数据库--->>> create database 数据库名2.显示所有数据库--->>> show databases3.使用指定数据库--->>> use 数据库名4.删除表---->>> drop table 表名5.删除数据库---->>> drop database 数据库名6.修改表结构: a.增加列---->>> alter table 表名 add 列名 数据类型(长度)b.修改列的数据类型--->>> alter table 表名 modify 数据类型(长度)c.修改列的名称--->>> alter table 表名 change 原列名 新列名 数据类型(长度)d.删除列--->>> alter table 表名 drop 列名SQL数据操纵语言:1.向表中插入数据---->>> insert into 表名 [(字段列表)] values (值列表)2.修改表中数据----->>> update 表名 set 字段1=值1,字段2=值2 [where]3.删除表中的数据----->>> delete from 表名 [where]SQL数据查询语言:1.单表查询--->>> select ... from 表名 [where] ... [group by] ... [having]...[order by(排序) asc/desc]2.模糊查询--->>> 只能与字符型一起使用的like关键字,区间范围的 between...and...在给定的值中进行选择的 in3.分组函数 count() sum() avg() max()SQL数据表连接查询(查询来源与两张表):select...from 表1 inner join 表2 on 链接条件 ..[where]...select...from 表1 left/right join 表2 on 链接条件 ..[where]...python与MySQL进行交互:常用操作:插入数据: insert查询数据: select更新数据: update创建数据库链接: connect(host,user,passwd,database)5.MongoDB(存储数据)属于NOSQL,使用c++开发的,它是一种基于分布式文件存储的开源数据库系统,将数据存储为一个文档,数据结构由键值(key-value)对形成的MongoDB文档类似于JSON对象,字段值可以包含其他文档,数组及文档数组MongDB数据库叫:database表名:collection行: document or BSON document列: field自动添加的数(不允许重复): _id(auto set)MongoDB数据类型: 1.Object ID:a.每个文档(行)都有一个属性,为 _id,保证每个文档的唯一性b.可以自己去设置_id插入文档,如果没有提供,那么MongoDB为每个文档提供一个独特的_id,类型为objectIDc.objectID是一个12字节的十六进制数(前4个字节为当前时间戳,接下来3个字节是机器ID,接下来的2个字节中是MongoDB的服务进程id,最后三个字节是简单的增量值)2.String类型:(字符串,最常用,必须是有效的utf-8)3.Boolean: (存储一个布尔值,True/False)4.Integer:(整数可以是32位或64位,这取决于服务器)5.Double:(存储浮点数)6.Arrays:(数组或列表,多个值存储到一个键)7.Object:(用于嵌入式的文档,即一个值为一个文档)8.Null:(存储Null值)9.Timestamp:(时间戳)10.Date:(存储当前日期或时间的UNIX时间格式)MongoDB最基本命令:show databases; (查看已有数据库)use dataname; (选择数据库)show tables; (查看已有表(集合))show collections; (查看已有表(集合))db.createCollection('表名') (建表(集合))db.集合名.drop() (删除集合)db.dropDatabase() (删除库)MongoDB的增 删 改操作:db.集合名.insert(document) (数据的添加)db.集合名.save(document) (如果存在就更新,不存在就添加)db.集合名.update(query,update,multi) (query:查询条件,类似于sql语句update中的where部分update:修改操作符,类似于sql语句update的set部分multi:可选,默认是false,表示只修改找到的第一条记录,值为true表示把满足条件的文档全部修改)db.集合名.remove(query) (删除数据,query为删除条件)MongoDB的查询操作:db.集合名.find({条件文档}) (查找所有的匹配数据)db.集合名.findOne({条件文档}) (只返回匹配的第一个数据)db.集合名.find().limit(number) (用于读取指定数量的文档)db.集合名.find().limit(number).skip(number) (用于跳过指定数量的文档查询指定数量的文档)db.集合名.find().sort({age:1/-1}) (参数为1为升序 参数为-1为降序)db.集合名.find({条件}).count() (用于统计·结果·集中文档条数)db.集合名.distinct('age') (对年龄进行去重)db.集合名.find({'age':{$exists:true/false}}) (查询年龄存在/不存在的数据)MongoDB中的比较符号:db.student.find({'age':{'$eq':20}}) ---->>>年龄等于20{'age':{'$lt':20}} ---->>>年龄小于20{'age':{'$gt':20}} ---->>>年龄大于20{'age':{'$lte':20}} ---->>>年龄小于等于20{'age':{'$gte':20}} ---->>>年龄大于等于20{'age':{'$ne':20}} ---->>>年龄不等于20{'age':{'$in':[20,30]}} ---->>>年龄在20-30范围内 包括20和30{'age':{'$nin':[20,30]}} ---->>>年龄不在20-30范围内{'$or':[{'age':20},{'name':'张三'}]} ---->>>查询年龄是20的和查询名字是张三的数据======================================================================================================================python与MongoDB的交互操作:1.导入 import pymongo2.链接客户端 client = pymongo.MongoClient('localhost',27017)3.获取要操作的数据库 db = client.数据库名 或 client['数据库名']4.获取集合 collection = db.集合名 或 collection = db['集合名 ']对MongoDB中的数据进行操作:1.添加数据: s1={'name':'张三','age':26}s2=[{},{},{},{},{}]collection.insert_one(s1) ---->>>向集合中添加s1数据collection.insert_many([{},{}]/s2)2.更新数据: collection.update_one({'name':'张三'},{'$set':{'age':12}}) --->>>($set用于保存其他数据)collection.update_many({'name':'张三'},{'$set':{'age':12}}) --->>>(将所有名字是张三的人的年龄设置为12)3.删除数据: collection.delete_one({'name':'张三'})collection.delete_many({'age':{'$gte':20}})4.查询数据: collection.find() (查询全部 也可以设定查询条件 collection.find({'name':'张三'}))collection.find_one()collection.find({'name':{'$regex':'.*三.*'}}) --->>>查询姓名中包含 二 的数据(.*三 属于正则表达式 表示三前面是任意字符任意长度)5.对查询结果进行排序操作:collection.find().sort('age',pymongo.ASCENDING) ---->>>升序排列 (返回的是一个列表,可以进行遍历显示能好看点)collection.find().sort('age',pymongo.DESCENDING) ----->>>降序排列collection.find().sort('age',pymongo.ASCENDING).limit(3) --->>>显示升序排列后前三条数据collection.find().sort('age',pymongo.ASCENDING).skip(3).limit(3) --->>>查询升序排列后跳过前三条数据再查询之后三条数据
Python爬虫存储数据相关推荐
- Python爬虫以及数据可视化分析
Python爬虫以及数据可视化分析之Bilibili动漫排行榜信息爬取分析 简书地址:https://www.jianshu.com/u/40ac87350697 简单几步,通过Python对B站番剧 ...
- python 爬虫与数据可视化
python 爬虫与数据可视化 1.引言 Web已经成为日新月异迅速发展的网络信息技术中的信息载体,如何有效地提取和利用搜索引擎获得互联网最有用的.可以免费公开访问的数据集,查找用户所需的价值数据或者 ...
- Python 爬虫找到数据了 re XPath requests Pool
Python 爬虫找到数据了 re & XPath & requests & Pool 2018.06.16 23:18 88浏览 字号 是的,爬虫就是为了获取数据.在获取的数 ...
- 2021-09-01 学习笔记:Python爬虫、数据可视化
2021-09-01 学习笔记:Python爬虫.数据可视化 结于2021-09-07: 内容来自 成都工业大学 数字媒体专业实训: 主要内容: PyCharm开发Python脚本的基础配置: Pyt ...
- python爬虫数据提取_入门Python爬虫——提取数据篇
原标题:入门Python爬虫--提取数据篇 作者: 李菲 来源:人工智能学习圈 前言 在提取数据这一环节,爬虫程序会将我们所需要的数据提取出来.在上一篇文章<入门Python爬虫 -- 解析数据 ...
- python 爬虫及数据可视化展示
python 爬虫及数据可视化展示 学了有关python爬虫及数据可视化的知识,想着做一些总结,加强自己的学习成果,也能给各位小伙伴一些小小的启发. 1.做任何事情都要明确自己的目的,想要做什么,打算 ...
- Python爬虫+数据分析+数据可视化(分析《雪中悍刀行》弹幕)
Python爬虫+数据分析+数据可视化(分析<雪中悍刀行>弹幕) 哔哔一下 爬虫部分 代码部分 效果展示 数据可视化 代码展示 效果展示 视频讲解 福利环节 哔哔一下 雪中悍刀行兄弟们都看 ...
- 为什么要学习Python爬虫与数据可视化?
提到Python爬虫与数据可视化,我们都不陌生.因为我们早已身在大数据驱动的时代,数据分析已然成为了一项必备技能.可能有人会问,为什么要学习Python爬虫与数据可视化? 答案是显而易见的,无论是出于 ...
- Python 爬虫 xpath 数据解析基本用法
Python 爬虫 xpath 数据解析基本用法 1. 基本语法 1.1 解析 html 语法 1.2 获取标签 1.3 获取标签中的内容 1.4 获取标签中的属性 1.5 通过内容寻找结点 2. 实 ...
最新文章
- RD基本功——Shell、Bash与Linux环境变量配置
- Powershell基础(一)
- python post请求 415_接收错误415:使用REST API发送GET请求时不支持媒体类型
- runtime相关知识
- linux设备驱动程序调试方法,Linux设备驱动程序学习(2)-调试技术
- 前端学习(2176):vue-router的路由的嵌套使用
- linux数据库实例开机启动,linux下数据库实例开机自启动设置
- MySQL进阶篇(03):合理的使用索引结构和查询
- python爬虫爬取雪球网_Python爬虫爬取天天基金网基金排行
- CodeIgniter辅助函数
- ES6/ES2015核心内容-转载
- 现在很多人都做自媒体,谈谈个人的一些想法
- Guitar Pro8(简称GTP8)打谱软件乐器乐谱的编排制作
- php解压有密码的zip,linux下解压有密码的rar压缩包的方法
- 桌面图标去掉小箭头的方法
- web音视频播放器(html5)方案总结
- git: Cannot communicate securely with peer: no common encryption algorithm(s)
- 2022-爬虫-Selenium-百度安全验证
- 避免过多if - else的新姿势:策略模式、工厂 + 策略
- 谈谈你对web语义化的理解
热门文章
- 提取地图中道路_国产地图神器在线PK谷歌地图,我的分析图有救拉~
- unity 读取灰度图生成按高程分层设色地形模型
- 2021最新版SpringBoot 速记
- nodejs初学者书籍_表示nodejs的后继者
- php加密验证_Sourcehunt PHP:有助于加密,验证,付款…
- RecyclerView中ViewHolder重用机制理解(解决图片错乱和闪烁问题)
- “厉害了我的华为”:研发投入、发明专利数、民营企业排行皆拿下第一
- 微信开发者工具项目wap.php,微信web开发者工具
- python:免费算卦
- 深度 | 700块钱“买到”全国简历,“58同城信息采集器”到底有多逆天?