使用Python将爬取的数据插入数据库
在数据科学和网络爬虫的应用场景中,爬取数据并存储到数据库是一个常见的操作。本文将通过示例,介绍如何使用Python连接数据库并将爬取的数据插入其中。我们将使用SQLite作为数据库,利用sqlite3
库操作数据库,并将在文章末尾展示数据的可视化。
环境准备
首先,我们需要安装以下Python库:
pip install requests beautifulsoup4 sqlite3
爬取数据
为了演示,我们将从一个简单的网页上爬取数据。下面是一个爬取示例,假设我们爬取某个网站的文章标题。
import requests
from bs4 import BeautifulSoup
def fetch_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
articles = soup.find_all('h2', class_='entry-title')
titles = [article.text for article in articles]
return titles
url = '
titles = fetch_data(url)
print(titles)
连接数据库并插入数据
爬取到数据后,接下来我们需要将这些数据存储到SQLite数据库中。首先,我们要创建一个数据库和相应的表格。
import sqlite3
def create_database():
conn = sqlite3.connect('articles.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS Articles (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL
)
''')
conn.commit()
return conn
def insert_data(conn, titles):
cursor = conn.cursor()
for title in titles:
cursor.execute('''
INSERT INTO Articles (title) VALUES (?)
''', (title,))
conn.commit()
连接数据库并调用插入方法的代码如下所示:
connection = create_database()
insert_data(connection, titles)
connection.close()
数据可视化
完成数据插入后,我们可以通过可视化展示数据。将数据统计为一个饼状图,便于直观理解。
pie
title Article Titles Distribution
"Python": 40
"Java": 30
"JavaScript": 20
"Ruby": 10
数据库关系图
如果我们的数据库表设计更复杂,包含多个表之间的关系,我们可以用ER图来表示。以下是一个简单的关系图示例:
erDiagram
Articles {
INTEGER id PK
STRING title
}
Authors {
INTEGER id PK
STRING name
}
Articles ||--o{ Authors : "written_by"
结尾
通过以上步骤,我们成功地从网页爬取数据,并将其插入到SQLite数据库中。此外,我们还展示了如何利用可视化工具对数据进行展示。无论是在数据分析还是在做数据产品时,将爬取到的数据存储到数据库中,都是一个极为重要的步骤。这不仅提高了数据的可管理性,还便于后续的查询和分析。希望本篇文章对你尽快掌握Python连接数据库和数据插入方法有所帮助!