欢迎访问宙启技术站
智能推送

Python爬虫获取数据保存到数据库中的超详细教程(一看就会)

发布时间:2023-05-18 20:02:50

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爬虫抓取数据并保存到数据库中,为日后的工作、学习提供了帮助。