技术文摘
python爬虫获取的歌曲如何保存
2025-01-09 04:37:36 小编
python爬虫获取的歌曲如何保存
在利用Python爬虫获取到歌曲后,如何将其妥善保存是许多开发者关心的问题。下面将详细介绍几种常见的保存方式。
以文件形式保存
二进制写入文件
当通过爬虫获取到歌曲的二进制数据后,可以使用Python的内置open()函数以二进制写入模式('wb')打开一个文件,然后将数据写入该文件。例如:
import requests
url = "歌曲的真实链接"
response = requests.get(url)
if response.status_code == 200:
with open('song.mp3', 'wb') as f:
f.write(response.content)
这段代码中,首先使用requests库发送请求获取歌曲数据,若请求成功,通过open()函数创建名为song.mp3的文件,并将响应内容写入其中。
分块写入
对于较大的歌曲文件,为避免内存占用过大,可以采用分块写入的方式。代码如下:
import requests
url = "歌曲链接"
response = requests.get(url, stream=True)
if response.status_code == 200:
with open('big_song.mp3', 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
stream=True参数使requests库以流的形式获取数据,iter_content()方法按指定块大小迭代读取数据,再逐块写入文件。
保存到数据库
SQLite数据库
如果希望将歌曲信息及数据整合管理,可以保存到数据库。以SQLite为例:
import sqlite3
import requests
url = "歌曲链接"
response = requests.get(url)
song_data = response.content
conn = sqlite3.connect('songs.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS songs (id INTEGER PRIMARY KEY, title TEXT, data BLOB)')
cursor.execute('INSERT INTO songs (title, data) VALUES (?,?)', ('示例歌曲', song_data))
conn.commit()
conn.close()
上述代码创建了一个SQLite数据库及表,将歌曲数据作为二进制大对象(BLOB)插入表中。
MySQL数据库
使用MySQL数据库保存歌曲数据,需先安装mysql - connector - python库:
import mysql.connector
import requests
url = "歌曲链接"
response = requests.get(url)
song_data = response.content
mydb = mysql.connector.connect(
host="localhost",
user="用户名",
password="密码",
database="数据库名"
)
mycursor = mydb.cursor()
sql = "INSERT INTO songs (title, data) VALUES (%s, %s)"
val = ("示例歌曲", song_data)
mycursor.execute(sql, val)
mydb.commit()
mydb.close()
通过这些方法,无论是以传统文件形式保存,还是整合到数据库中管理,都能实现Python爬虫获取歌曲后的有效存储,满足不同的应用需求。
- Nginx 中 upstream 模块的使用方法详解
- Linux 中修改打开文件数限制的方法
- 在 Linux 中怎样切割大文件
- Windows Server 2019 组策略配置与管理的理论基础
- 在 Linux 中怎样查看 usb 设备信息
- Linux 系统中 USB 口的禁用方法
- Linux 中修改打开文件数量与进程数量限制的三种途径
- Linux 本地 yum 源配置(光盘镜像挂载)
- Linux 中怎样杀掉指定端口
- FTP 常用命令汇总
- Linux free 命令与系统内存占用过高的解决办法
- Linux 服务器硬件数据收集与使用实例
- Windows Server 2019 网络负载均衡服务的配置及管理(理论、网络拓扑与说明)
- 解决 Linux 所有命令失效显示“bash: xxxxx: command not found”的方法
- AWS 上 Linux 服务器部署 Flask 预演的详细步骤