将Python爬取到的数据保存到数据库
时间: 2023-11-01 13:07:33 浏览: 135
将Python爬取到的数据保存到数据库,可以按以下步骤进行:
1. 安装数据库:先安装 MySQL 或者 SQLite 等数据库。
2. 安装数据库驱动程序:Python 中可以通过 MySQLdb 或者 sqlite3 模块来连接 MySQL 或者 SQLite 数据库,需要先安装相关的驱动程序。
3. 创建数据库表:在数据库中创建表,用于存储爬取到的数据。
4. 编写 Python 程序:编写 Python 程序,使用相关模块连接数据库,并将爬取到的数据存储到数据库中。
下面是一个例子,假设已经安装了 MySQL 数据库和 MySQLdb 驱动程序,并在数据库中创建了一个名为 `mytable` 的表,用于存储爬取到的数据。
```python
import MySQLdb
# 连接数据库
db = MySQLdb.connect("localhost", "root", "password", "mydatabase")
# 使用 cursor() 方法获取操作游标
cursor = db.cursor()
# 编写 SQL 语句,用于创建表
sql = """CREATE TABLE mytable (
ID INT(11) NOT NULL AUTO_INCREMENT,
NAME CHAR(20) NOT NULL,
AGE INT(11),
ADDRESS CHAR(50),
PRIMARY KEY (ID))"""
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
# 关闭数据库连接
db.close()
```
上面的代码会在 `mydatabase` 数据库中创建一个名为 `mytable` 的表,包含 `ID`、`NAME`、`AGE`、`ADDRESS` 四个字段。
然后可以编写爬取数据的 Python 程序,并将爬取到的数据存储到数据库中。例如:
```python
import requests
from bs4 import BeautifulSoup
import MySQLdb
# 连接数据库
db = MySQLdb.connect("localhost", "root", "password", "mydatabase")
# 使用 cursor() 方法获取操作游标
cursor = db.cursor()
# 爬取数据
url = "https://www.example.com/"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
data = soup.find_all("div", {"class": "item"})
# 将数据存储到数据库
for item in data:
name = item.find("a", {"class": "name"}).text
age = item.find("span", {"class": "age"}).text
address = item.find("div", {"class": "address"}).text
# 编写 SQL 语句,用于插入数据
sql = "INSERT INTO mytable(NAME, AGE, ADDRESS) VALUES ('%s', '%s', '%s')" % (name, age, address)
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
# 关闭数据库连接
db.close()
```
上面的代码会将爬取到的数据存储到 `mytable` 表中。注意,SQL 语句中的 `%s` 是占位符,可以通过 `%` 操作符和元组来替换。由于数据中可能包含特殊字符,为了防止 SQL 注入等安全问题,建议使用参数化查询。
阅读全文