import pymysql
import numpy as np
from dbutils.pooled_db import PooledDB
import pandas as pd
class MysqlPool():
config = {
'creator': pymysql,
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': '123456',
'db': 'movie',
'charset': 'utf8',
'maxconnections': 70, # 连接池最大连接数量
'cursorclass': pymysql.cursors.DictCursor
}
#借助连接池连接数据库
pool = PooledDB(**config)
def __enter__(self):
self.conn = MysqlPool.pool.connection()
self.cursor = self.conn.cursor()
return self
def __exit__(self, type, value, trace):
self.cursor.close()
self.conn.close()
# 执行函数
# 执行函数
def execute(database_commands, s_value=None, i=0):
"""
:param database_commands: 数据库的执行语句
:param s_value: %s代表的变量名称
:param i: 执行判断符,当i为1时执行状态判断 ,默认值为0
"""
# 捕获异常,并报错
with MysqlPool() as db:
#o(* ̄︶ ̄*)o此处调用__enter__()
# 执行操作命令 database_commands:数据库的查询语句 s_value:当查询语句出现%s时%s对应的值,默认为None
db.cursor.execute(database_commands, s_value)
# 向数据库提交命令
db.conn.commit()
# 当执行查询操作时打印并返回查询的数据
if "select" in database_commands and i == 0:
# 打印查询的全部数据,fetchall()的返回值为list格式的字典集
print(db.cursor.fetchall())
# 返回查询的全部数据
return db.cursor.fetchall()
elif i == 1:
return db.cursor.fetchall()
#o(* ̄︶ ̄*)o此处调用__exit__()
# 向数据表内插入数据
def test_insert(username, cd, time, comments,id,table="comments"):
"""
:param username: 用户名称
:param cd: 推荐程度
:param time: 评论时间
:param comments: 评论内容
id为主键
:param table: 数据表的名称
"""
# 编写插入语句,%s表示元素的占位符
sql_insert = "insert into " + table + " (Name,cd,time,context,id) values(%s,%s,%s,%s,%s)"
# 表示从左到右每个占位符所表示的元素的内容
value = (username, cd, time,comments,id)
# 插入数据
execute(sql_insert, value)
comment = pd.read_excel('/Users/macbook/PycharmProjects/pythonProject1/豆瓣/豆瓣/电影/豆瓣热评.xlsx')
for i in range(0,comment.shape[0]):
value_username = comment.iloc[i,0]
value_cd = comment.iloc[i,1]
value_time = comment.iloc[i,2]
value_comment = comment.iloc[i, 3]
value_id = i+1
test_insert(value_username, value_cd, value_time,value_comment,value_id)
print("导入成功!")
python 爬虫 爬取豆瓣电影与影评
需积分: 0 116 浏览量
2023-09-09
11:32:59
上传
评论 1
收藏 6KB ZIP 举报
Instead9
- 粉丝: 2
- 资源: 1
最新资源
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
- 基于哈希链表的简单人员信息管理系统
- 其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.rar
- 2001~2022年上市公司数字赋能指数.dta
- 2001~2022年上市公司数字赋能指数.xlsx
- 信息办公石大在线财务管理系统(含源码)-shidacaiwu.rar
- 信息办公电信计费系统完整代码-netctossconformity.rar
- matlab实现TD-SCDMA中初始同步捕捉DwPTS下行同步导频时隙的仿真.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈