首页 > 数据库 >用python爬去电影评分保存进mysql

用python爬去电影评分保存进mysql

时间:2023-07-16 15:32:53浏览次数:41  
标签:ratings python movie 数据库 MySQL 电影 评分 mysql

用Python爬取电影评分保存进MySQL

在今天的数字化时代,电影评分是人们选择观看电影的重要参考因素之一。那么,如何通过Python爬取电影评分数据,并保存到MySQL数据库中呢?本文将为你提供一种简单的方法来实现这个目标。

准备工作

在开始之前,我们需要确保已经安装了Python和MySQL,并且已经安装了相应的Python库。在本文中,我们将使用requests库来发送HTTP请求,BeautifulSoup库来解析HTML,并使用pymysql库来连接MySQL数据库。

你可以通过以下命令来安装这些库:

pip install requests beautifulsoup4 pymysql

爬取电影评分数据

首先,我们需要确定我们要爬取的电影评分网站。这里我们选择了IMDb(互联网电影数据库)作为示例。

import requests
from bs4 import BeautifulSoup

def get_movie_ratings(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    ratings = soup.find_all('span', class_='rating')
    movie_ratings = []
    for rating in ratings:
        movie_ratings.append(rating.get_text())
    return movie_ratings

url = '
movie_ratings = get_movie_ratings(url)
print(movie_ratings)

在上面的代码中,我们定义了一个get_movie_ratings函数,它接受一个URL作为参数,并返回一个包含电影评分的列表。我们使用requests库发送HTTP请求,然后使用BeautifulSoup库解析HTML,从中提取出电影评分数据。

连接MySQL数据库

接下来,我们需要连接MySQL数据库,并创建一个表来保存电影评分数据。

import pymysql

# 连接数据库
connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    db='movie_ratings'
)

# 创建表
cursor = connection.cursor()
create_table_query = '''
    CREATE TABLE IF NOT EXISTS ratings (
        id INT PRIMARY KEY AUTO_INCREMENT,
        movie_rating VARCHAR(5)
    )
'''
cursor.execute(create_table_query)
connection.commit()

在上面的代码中,我们使用pymysql库来连接MySQL数据库。我们需要提供数据库的主机地址、用户名、密码和数据库名称。然后,我们使用cursor对象执行SQL语句来创建一个名为ratings的表,该表包含一个自增的ID列和一个电影评分列。

将数据保存到数据库

现在,我们已经准备好将电影评分数据保存到数据库中了。

# 将数据保存到数据库
insert_query = 'INSERT INTO ratings (movie_rating) VALUES (%s)'
for rating in movie_ratings:
    cursor.execute(insert_query, (rating,))
connection.commit()

# 关闭数据库连接
connection.close()

在上面的代码中,我们使用INSERT语句将电影评分数据插入到数据库中。我们使用%s作为占位符,并传入一个包含电影评分的元组。然后,我们使用connection.commit()来提交事务,并使用connection.close()来关闭数据库连接。

结语

恭喜!现在你已经学会了用Python爬取电影评分并保存到MySQL数据库中。这个简单的例子向你展示了如何使用requestsBeautifulSoup库来爬取网页数据,并使用pymysql库连接和操作MySQL数据库。当然,这只是一个开始,你可以根据自己的需求进一步扩展和优化代码。

希望本文对你有所帮助!如果你还有任何问题或想了解更多关于Python爬虫和MySQL数据库的知识,请随时探索网络上的资源或咨询专业人士。祝你在编程的道路上一帆风顺!

标签:ratings,python,movie,数据库,MySQL,电影,评分,mysql
From: https://blog.51cto.com/u_16175435/6738376

相关文章

  • 用Python如何找两个字符串重复的字符
    用Python如何找两个字符串重复的字符有时候在处理字符串的时候,我们需要找出两个字符串中重复的字符。这个问题在实际开发中是非常常见的,比如在数据清洗、文本处理和密码验证等任务中。在本文中,我们将讨论如何用Python解决这个问题。方法一:遍历字符比较最简单的方法是遍历第一个......
  • 用Python如何找两个字符串中的字符
    用Python如何找两个字符串中的字符在Python中,我们可以使用多种方法来找到两个字符串中的字符。下面将介绍几种常见的方法,包括使用循环、集合操作和内置函数等。方法一:使用循环遍历字符串deffind_characters(str1,str2):common_characters=[]forcharinstr1:......
  • 在VSCode中编写python代码,代码规范工具介绍与推荐
    引言日常中,写的最多的代码是Python,虽说是算法工程师,这不也是工程师嘛,所以基本的代码功底还是要有的。由于Python是动态类型语言,没有强制的约束,如果没有一些相应规范,会导致大家写的代码可读性较差,且潜在的问题难以发现。因此,本文旨在引入一些工具来帮助大家写出更加健壮的代码......
  • MySQL为什么不建议使用delete删除数据?
    这篇文章我会从InnoDB存储空间分布,delete对性能的影响,以及优化建议方面解释为什么不建议delete删除数据。InnoDB存储架构从这张图可以看到,InnoDB存储结构主要包括两部分:逻辑存储结构和物理存储结构。逻辑上是由表空间tablespace—> 段segment或者inode—>区Extent——>......
  • MySQL锁
    全局锁对数据库加锁,典型使用场景是全库备份。加全局读锁,整库只读:Flushtableswithreadlock(FTWRL)。针对全库只读,不使用setglobalreadonly=true,使用FTWRL的原因:1.readonly的值可能用来做逻辑判断,例如判断是主库还是备库。2.FTWRL在客户端异常断开连接后自动释放全局锁,re......
  • MySQL主备
    MySQL主备同步原理1备库io_thread通过长连接获取主库的binlog2备库sql_thread执行binlog节点A和B之间互为主备关系,都认为对方是主,切换时不用再修改主备关系。解决双Mbinlog循环同步问题1A更新的事务,binlog记的是A的serverid2B同步后生成的binlog的serverid也是A的serveri......
  • mysql安装
    安装方式选择:二进制、源码、yum安装(生产选择二进制安装)参考链接:https://www.cnblogs.com/yyxianren/p/11319544.html1.卸载默认安装的mariadb:  yumremovemariadb*-y2.添加mysql用户:  useradd-s/sbin/nologin-Mmysql3.解压tar文件并移动到指定目录,并赋权: ......
  • MySQL索引
    主键索引和普通索引结构上的区别每一个索引在InnoDB里面对应一棵B+树。有一个主键列为ID的表,表中有字段k,在k上有索引。CREATETABLET(  idintPRIMARYKEY,  kintNOTNULL,  namevarchar(16),  INDEX(k))ENGINE=InnoDB;表中R1~R5的(ID,k)值分别为(100,1......
  • MySQL自增值
    InnoDB引擎1自增值的保存机制MySQL5.7及之前的版本自增值保存在了内存里面,MySQL8.0版本才有自增值持久化能力(把自增值的变更记录在了redolog,重启后依靠redolog回复)。每次重启后,把自增值的最大值max(id)+1作为这个表当前的自增值。例如,一个表最大的id是10,AUTO_INCREMENT=11,删......
  • mysql主从复制
    1.MySQL主从复制介绍  主从复制实现的原理:(同步二进制日志文件)  主服务器开启二进制日志功能,当mysql进行操作同时生成一条操作事件日志,  并写入二进制日志文件中,从服务器通过同步二进制日志文件,并在从服务器  重新执行该事件,从而实现主从复制。2.主从服务器配置 ......