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()

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐