python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里)

python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里),第1张

MySQL

是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

:《Python基础教程》

应用环境

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

MongoDB

是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

面向集合存储,易存储对象类型的数据。

mongodb集群参考

模式自由。

支持动态查询。

支持完全索引,包含内部对象。

支持查询。

支持复制和故障恢复。

使用高效的二进制数据存储,包括大型对象(如视频等)。

自动处理碎片,以支持云计算层次的扩展性。

支持RUBY,PYTHON,JAVA,C,PHP,C#等多种语言。

文件存储格式为BSON(一种JSON的扩展)。

可通过网络访问。

python从mysql数据库提取出来的数据在html里显示

import mysqlconnector

con = mysqlconnectorconnect(host='127001',user='root',password='',db='testt')

rel = concursor()

relexecute('select from school')

val = relfetchall()

val = val[0][1]

conclose();

relclose();

增加一条数据

import pymysql

 

 #返回Connection对象

 #host="localhost"

 con = pymysqlconnect(host="1921683128",

                  port=3306,user="atguigu",

                  password="atguigu",

                  db="atguigudb",

                  charset="utf8")

 #返回cursor对象

 cursor = concursor()

 #SQL语言-SQL语句

 sql = "insert into students(name) value('李四')"

 #插入数据

 cursorexecute(sql)

 #提交数据,没有提交就没有数据

 concommit()

 #关闭释放资源

 cursorclose()

 #关闭资源

 conclose()

修改数据

import pymysql

 #修改任意一条数据

 

 #返回Connection对象

 conn = pymysqlconnect(

    host="1921683128",

    db="atguigudb",

    port=3306,

    user="atguigu",

    password="atguigu",

    charset="utf8"

 )

 cursor = conncursor()

 sql = "update students set name='郭靖' where id = 1"

 count = cursorexecute(sql)

 print("count=",count)

 #提交正常数据物理上修改了

 conncommit()

 cursorclose()

 connclose()

删除数据

import pymysql

 #修改任意一条数据

 

 #返回Connection对象

 conn = pymysqlconnect(

    host="1921683128",

    db="atguigudb",

    port=3306,

    user="atguigu",

    password="atguigu",

    charset="utf8"

 )

 cursor = conncursor()

 sql = "delete from students where id =20"

 count = cursorexecute(sql)

 print("count=",count)

 conncommit()

 cursorclose()

 connclose()

查询一条数据

import pymysql

 try:

    conn=pymysqlconnect(

       host='1921683128',

       port=3306,

       db='atguigudb',

       user='atguigu',

       passwd='atguigu',

       charset='utf8'

    )

    cursor=conncursor()

    cursorexecute('select  from students where id = 3')

    #返回满足这个条件的这个数据,如果有多条返回第一条,并且封装元组中

    result = cursorfetchone()

    print(result)

    for i in result:

       print(i)

    cursorclose()

    connclose()

 except Exception as e:

    print(emessage)

查询多条数据

import pymysql

 try:

    conn=pymysqlconnect(

       host='1921683128',

       port=3306,

       db='atguigudb',

       user='atguigu',

       passwd='atguigu',

       charset='utf8'

    )

    cursor=conncursor()

    cursorexecute('select  from students')

    #返回元组,如果多条数据,元组里面嵌套元组

    result = cursorfetchall()

    print(result)

    for i in result:

       print(i)

    conncommit()

    cursorclose()

    connclose()

 except Exception as e:

    print(emessage)

读取mysql数据,填写数据到excel

from pyexcel_xls import save_data

from pyexcel_xls import get_data

from collections import OrderedDict

import mysqlconnector

#和数据库建立连接

cnx =mysqlconnectorconnect(user='root', password='',  

                              host='127001',  

                              database='test')

#查询语句

sql = "select my_name,my_value from tbl_members "

#执行查询

cursorexecute(sql)

#获得查询结果

result = cursorfetchall()

cursorclose()

cnxclose()

#打开预定义表头文件

xls_header= get_data("d:/xhxls")

#获得表头数据

xh = xls_headerpop("Sheet1")

#拼接整表数据

xd = OrderedDict()

xdupdate({"Sheet 1":xh+result})

#保存到另一个文件中

save_data("d:/xdxls",xd)

导入工具imp交互式命令行方式的例子

$imp

Import:Release81600-Proctionon星期五12月717:01:082001

©Copyright1999OracleCorporationAllrightsreserved

用户名:test

口令:

连接到:Oracle8iEnterpriseEditionRelease81600-64bitProction

Withtheoption

JServerRelease81600-Proction

导入文件:expdatdmp>/tmp/mdmp

输入插入缓冲区大小(最小为8192)30720>

经由常规路径导出由EXPORT:V080106创建的文件

警告:此对象由TEST导出,而不是当前用户

已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入

只列出导入文件的内容(yes/no):no>

由于对象已存在,忽略创建错误(yes/no):no>yes

导入权限(yes/no):yes>

导入表数据(yes/no):yes>

导入整个导出文件(yes/no):no>yes

正在将TEST的对象导入到SCOTT

正在导入表"CMAMENU"4336行被导入

成功终止导入,但出现警告。

导入工具imp非交互式命令行方式的例子

$impsystem/managerfromuser=jonestables=(ats)

$impsystem/managerfromuser=scotttables=(emp,dept)

$impsystem/managerfromuser=scotttouser=joetables=emp

$impscott/tigerfile=expdatdmpfull=y

$impscott/tigerfile=/mnt1/t1dmpshow=nbuffer=2048000ignore=ncommit=ygrants=yfull=ylog=/oracle_backup/log/imp_scottlog

$impsystem/managerparfile=paramsdat

paramsdat内容

file=dbadmpshow=nignore=ngrants=yfromuser=scotttables=(dept,emp)

导入工具imp可能出现的问题

(1)数据库对象已经存在

一般情况,导入数据前应该彻底删除目标数据下的表,序列,函数/过程,触发器等;

数据库对象已经存在,按缺省的imp参数,则会导入失败

如果用了参数ignore=y,会把exp文件内的数据内容导入

如果表有唯一关键字的约束条件,不合条件将不被导入

如果表没有唯一关键字的约束条件,将引起记录重复

(2)数据库对象有主外键约束

不符合主外键约束时,数据会导入失败

解决办法:先导入主表,再导入依存表

disable目标导入对象的主外键约束,导入数据后,再enable它们

(3)权限不够

如果要把A用户的数据导入B用户下,A用户需要有imp_full_database权限

(4)导入大表(大于80M)时,存储分配失败

默认的EXP时,compress=Y,也就是把所有的数据压缩在一个数据块上

导入时,如果不存在连续一个大数据块,则会导入失败

导出80M以上的大表时,记得compress=N,则不会引起这种错误

(5)imp和exp使用的字符集不同

如果字符集不同,导入会失败,可以改变unix环境变量或者NT注册表里NLS_LANG相关信息

导入完成后再改回来

(6)imp和exp版本不能往上兼容

imp可以成功导入低版本exp生成的文件,不能导入高版本exp生成的文件

根据情况我们可以用

$impusername/password@connect_string

说明:connect_string是在/ORACLE_HOME/network/admin/tnsnamesora

定义的本地或者远端数据库的名称

注意事项:

UNIX:/etc/hosts要定义本地或者远端数据库服务器的主机名

win98:windowshosts和IP地址的对应关系

win2000:winntsystem32driversetchosts

本文Python *** 作 MySQL 数据库需要是使用到 PyMySQL 驱动

Python *** 作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。

注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:

权限设置:

初始化 MySQL:

启动 MySQL:

查看 MySQL 运行状态:

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

登陆:

创建数据库:

查看数据库:

PyMySQL 模块使用 pip命令进行安装:

假如系统不支持 pip 命令,可以使用以下方式安装:

pymysql connect 函数:连接上数据库

输出结果显示如下:表面数据库连接成功

使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:

conncursor():获取游标

如果要 *** 作数据库,光连接数据是不够的,咱们必须拿到 *** 作数据库的游标,才能进行后续的 *** 作,游标的主要作用是用来接收数据库 *** 作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:

输出结果为:

cursor 返回一个游标实例对象,其中包含了很多 *** 作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()

execute(query,args=None):

executemany(query,args=None):

其他游标对象如下表:

完整数据库连接 *** 作实例如下:

以上结果输出为:

创建表代码如下:

如下所示数据库表创建成功:

插入数据实现代码:

插入数据结果:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

查询数据代码如下:

输出结果:

DB API中定义了一些数据库 *** 作的错误及异常,下表列出了这些错误和异常:

本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查 *** 作,文章通过简洁的代码方式进行示例演示,给使用 Python *** 作 Mysql 的工程师提供支撑。

以上就是关于python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里)全部的内容,包括:python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里)、python从mysql数据库提取出来的数据怎么在html里显示、python使用数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9739438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存