Python爬虫获取数据保存到数据库中的超详细教程(一看就会)
Python爬虫是当前互联网热门技术之一,通过Python爬虫可以获取网络上的数据,并把这些数据保存到数据库中。本文将介绍Python爬虫获取数据保存到数据库中的详细教程。
一、数据库的基本概念
数据库是一种结构化数据存储方式,通常由多个数据表组成,每个数据表包含多个数据字段。常见的数据库管理系统有MySQL、Oracle、SQL Server等,其中MySQL是一种常用的开源数据库管理系统。我们可以使用Python来对MySQL数据库进行操作。
二、准备工作
要使用Python将数据保存到MySQL数据库中,我们需要准备以下工作:
1. 安装MySQL数据库管理系统
2. 安装MySQL驱动程序
我们可以使用conda或pip安装Python的MySQL驱动程序。最常用的是pymysql库和mysql-connector-python库。
3. 创建MySQL数据库和数据表
使用MySQL命令行或图形化工具创建一个数据库和一个数据表,用于存储我们获取到的数据。
三、Python爬虫获取数据保存到MySQL数据库的步骤
接下来,我们来一步步实现Python爬虫获取数据保存到MySQL数据库中的流程。
1. 导入所需的库
import pymysql import requests from bs4 import BeautifulSoup
2. 连接MySQL数据库
# 打开数据库连接 db = pymysql.connect(host='localhost', user='root', password='123456', port=3306) # 使用cursor()方法创建一个游标对象cursor cursor = db.cursor()
3. 创建数据库和数据表
上述步骤中已经说过,我们需要使用MySQL命令行或图形化工具创建一个数据库和一个数据表。
4. 网络请求
我们使用requests库发送网络请求,获取数据。
url = 'http://example.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
response = requests.get(url, headers=headers)
5. 解析数据
我们使用BeautifulSoup库解析获取到的数据,并提取我们需要的数据。
soup = BeautifulSoup(response.text, 'html.parser') title = soup.title.string
6. 将数据保存到MySQL数据库中
sql = "INSERT INTO example(title) VALUES(%s)"
try:
# 执行SQL语句
cursor.execute(sql, (title,))
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
7. 关闭数据库连接
# 关闭游标 cursor.close() # 关闭数据库连接 db.close()
到此,我们就成功地实现了Python爬虫获取数据保存到MySQL数据库中的流程。
四、完整代码
下面是一个完整的Python爬虫获取数据保存到MySQL数据库中的例子:
import pymysql
import requests
from bs4 import BeautifulSoup
# 连接数据库
db = pymysql.connect(host='localhost', user='root', password='123456', port=3306)
# 创建游标
cursor = db.cursor()
# 创建数据库和数据表
cursor.execute('CREATE DATABASE IF NOT EXISTS mydatabase')
cursor.execute('USE mydatabase')
cursor.execute('CREATE TABLE IF NOT EXISTS example(id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255))')
# 爬取数据并保存到数据库中
url = 'http://example.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.title.string
# 将数据保存到数据库
sql = "INSERT INTO example(title) VALUES(%s)"
try:
# 执行SQL语句
cursor.execute(sql, (title,))
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭游标和数据库连接
cursor.close()
db.close()
五、总结
本文介绍了Python爬虫获取数据保存到MySQL数据库中的详细流程,包括准备工作、Python代码实现过程和完整代码。通过本文的学习,你可以掌握如何使用Python爬虫抓取数据并保存到数据库中,为日后的工作、学习提供了帮助。
