python实现数据写入数据库功能
·
昨天写的爬完存excel,今天来写写存数据库,因为我之前本地有装一个数据库用来测试,点击跳转
准备工作
这次是要用到pymysql库
pip install pymysql
首先还是要先请求拿到返回数据,这个和存excel思路一样的
返回的数据格式是
{“message”:“请求成功”,“data”:{[],[]}l}
需要的是data里的数据,所以在拿数据的函数只要data就可以了,
至于data里的数据具体要怎么拿,可以再写一个函数来解析
def getHTMLtext(url): # 用来请求拿到大的数据
try:
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
"Cookie": "Cookie",
} # 浏览器请求头
r = requests.get(url, headers=headers, timeout=30) # 获取连接
electrics = r.json()["Data"]#只要data
return electrics
except:
return ""
# 解析html提取数据
def workData(): #
datalist = []
for i in getHTMLtext(url):
data = []
useDate = i["Date"]
data.append(useDate)
useInitpower = i["Initpower"]
data.append(useInitpower)
useLastpower = i["Lastpower"]
data.append(useLastpower)
useAllmoney = i["Allmoney"]
data.append(useAllmoney)
datalist.append(data)
return datalist
存入数据库首先需要配置下数据库的信息,然后建表,然后再循环把数据写入
def toMysql():
conn = pymysql.connect(
host="localhost",
port=3306,
user="用户名",
passwd="填密码",
db="sys",
charset="gbk",
connect_timeout=1000,
)
cursor = conn.cursor()
sql = """
create table if not exists tb_news(
useDate date,
useInitpower varchar(400),
useLastpower varchar(400),
useAllmoney varchar(400))
"""
cursor.execute(sql) # 建表
for new in workData(): # 循环存入数据
sql = "insert into tb_news(useDate, useInitpower,useLastpower,useAllmoney) values(%s, %s, %s, %s)"
useDate = new[0]
useInitpower = new[1]
useLastpower = new[2]
useAllmoney = new[3]
cursor.execute(sql, (useDate, useInitpower, useLastpower, useAllmoney))
conn.commit()
conn.close()
执行就写入成功啦

有帮助请帮我点个赞吧。。谢谢~
扩展阅读:
python实现自动发邮件功能
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)