使用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连接数据库和数据插入方法有所帮助!