python连接mysql并写入数据(简单爬虫)
Posted lizhyangmm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python连接mysql并写入数据(简单爬虫)相关的知识,希望对你有一定的参考价值。
1、在python中把一组数据写进mysql中,重点主要是实现python和MySQL的初步连接: import pymysql # 导入pymysql模块,这样才能连接到mysql,但是还需要我们在DOS中-u root -p输入密码登陆一下,否则连接会报错,可以下载另一个模块解决,但是我觉得没必要登录一下就登录呗,否则模块太多了 db = pymysql.Connect(host='localhost', port=3306, user='root', # 连接数据库MySQL passwd='******', database='db_securities', charset='utf8') #这就是pymysql.Connect函数,里面的参数大家可以主义研究,直接拿来用只需要改你的密码就是passwd='******'和要连接的数据库database='db_securities' cursor = db.cursor() # 相当创建一个光标 sql = """ # 典型的SQL语句,以str的形式 insert into t_pe(date, 10yearsyotb, cna, hs300, zz500, zz1000, cyb, kcb, shch, hkt, nsdq100) values('2022-10-21', 2.7287, 16.36, 10.98, 20.96, 28.35, 45.43, 40.4, 54.72, 36.95, 23.45) """ cursor.execute(sql) # 执行SQL语句相当于“;+enter”,SQL遇到;结束,按下enter执行 db.commit() # 提交命令写入硬盘,不过MySQL默认提交,你不乱改的话 cursor.close() # 关闭光标 db.close() # 关闭数据库
2、python连接mysql并写入简单的爬虫数据,重点是json import requests # 爬虫requests模块 import re # 正则匹配模块 import json # 接送模块,能把类字典的字符串干成字典,能把字典字符串干成字典,反正很强大 import pymysql index_tuple = [] # 建立一个空列表放爬出来的数据 headers = 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) ' 'AppleWebKit/537.36 (Khtml, like Gecko) Chrome/86.0.4240.198 Safari/537.36' # 复制过来一个'user-agent'让爬虫模拟用户的更逼真一些,还可以用cookie,代理IP(免费的已经用烂了) rule = r'quote: (.*),' # 指定正则匹配规则,看一下网页源码数据,自己需求的数据开头是啥,结尾是啥,然后匹配出来 response = requests.get('https://xueqiu.com/S/SH000001', headers=headers) # 发一个get请求,post请求需要交互参数,比如你要输入一个验证码啥的 result = re.findall(rule, response.text) # 把我们的结果匹配出来,匹配出来是个['目标数据']这个类型 data = result[0] # 从列表里拿出来'目标数据' data1 = json.loads(data) # 用json还原成字典,然后根据key就可以获得value,一下就是重复爬虫部分和第一部分的连接 index_tuple.extend([float(data1['current']), data1['amount']/100000000]) response = requests.get('https://xueqiu.com/S/SZ399006', headers=headers) result = re.findall(rule, response.text) data = result[0] data1 = json.loads(data) index_tuple.extend([float(data1['current']), data1['amount']/100000000]) index_list = [] asd = round(index_tuple[1]+index_tuple[3],2) date = '2022-10-21' db = pymysql.Connect(host='localhost', port=3306, user='root', # 连接数据库MySQL passwd='******', database='db_securities', charset='utf8') cursor = db.cursor() sql = "insert into t_index(日期, 上证指数, 创业板指数, 2市成交额, 创业板成交额)" \\ " values('%s', '%.2f', '%.2f', '%.2f', '%.2f')" %(date, index_tuple[0], index_tuple[4], asd, index_tuple[5]) cursor.execute(sql) db.commit() cursor.close() db.close()
python读取数据库表数据并写入excel
一个简单的使用python读取mysql数据并写入excel中实例
1、python连接mysql数据库
conn = pymysql.connect(user=‘root‘,host=‘127.0.0.1‘,port=3306,passwd=‘root‘,db=‘python‘,charset=‘utf8‘) #连接数据库 cur = conn.cursor()
2、读取mysql数据库中表数据
1 sql = ‘select * from %s;‘ %table_name #需要写入excel表数据 2 #读取数据 3 cur.execute(sql) #读取数据 4 fileds = [filed[0] for filed in cur.description] #读取表结构定义 5 all_date = cur.fetchall() #所有数据 6 for result in all_date: 7 print(result) 8
3、数据写入excel
1 book = xlwt.Workbook() #创建一个book 2 3 sheet = book.add_sheet(‘result‘) #创建一个sheet表 4 5 for col,filed in enumerate(fileds): 6 sheet.write(0,col,filed) #将表字段描述写入excel第一行 7 8 #从第一行开始写 9 10 row = 1 11 for data in all_date: 12 for col,filed in enumerate(data): 13 sheet.write(row,col,filed)#将数据写入excel单元格中 14 row += 1
4、保存excel
book.save(‘%s.xls‘ %table_name)
5、完整代码
#!/usr/bin/env python # -*- coding: utf-8 -*- ‘‘‘ @Time : 2020/1/1 18:08 @Author : Jason.Jia @contact: jiajunp@163.com @Version : 1.0 @file :mysql_write_excel.py @desc : 从mysql读取数据,写入excel中 ‘‘‘ import pymysql,xlwt def export_excel(table_name): conn = pymysql.connect(user=‘root‘,host=‘127.0.0.1‘,port=3306,passwd=‘root‘,db=‘python‘,charset=‘utf8‘) cur = conn.cursor() sql = ‘select * from %s;‘ %table_name #读取数据 cur.execute(sql) fileds = [filed[0] for filed in cur.description] all_date = cur.fetchall() #所有数据 for result in all_date: print(result) #写excel book = xlwt.Workbook() #创建一个book sheet = book.add_sheet(‘result‘) #创建一个sheet表 for col,filed in enumerate(fileds): sheet.write(0,col,filed) #从第一行开始写 row = 1 for data in all_date: for col,filed in enumerate(data): sheet.write(row,col,filed) row += 1 book.save(‘%s.xls‘ %table_name) if __name__ == ‘__main__‘: export_excel(‘stocks‘)
以上是关于python连接mysql并写入数据(简单爬虫)的主要内容,如果未能解决你的问题,请参考以下文章
python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集分析展示
python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集分析展示