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连接mysql之查询及写入excel

python读取数据库表数据并写入excel

python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集分析展示

python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集分析展示

python爬虫--连接数据库1

python爬虫超简单攻略,带你写入门级的爬虫