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

Python编写案例:爬取网页数据并存储到数据库

发布时间:2023-12-04 17:53:26

Python是一种非常强大的编程语言,用于爬取网页数据并将数据存储到数据库非常方便。下面是一个使用Python编写的案例,演示了如何爬取网页数据并将数据存储到数据库中。

首先,我们需要安装一个Python的库,名为Beautiful Soup,用于解析网页数据。我们可以通过在终端中运行以下命令来安装Beautiful Soup:

pip install beautifulsoup4

接下来,我们需要导入一些库和模块,包括Beautiful Soup和一个用于数据库连接的模块,如pymysql。我们可以使用以下代码导入这些库和模块:

from bs4 import BeautifulSoup
import requests
import pymysql

接下来,我们需要连接到数据库。假设我们使用的是MySQL数据库。我们可以使用以下代码连接到数据库:

# 连接数据库
conn = pymysql.connect(
    host='localhost',  # 数据库地址
    user='root',  # 用户名
    password='password',  # 密码
    db='testdb'  # 数据库名
)

然后,我们需要创建一个表来存储我们要爬取的数据。我们可以使用以下代码创建一个名为data的表:

# 创建表
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS data (id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255), url VARCHAR(255))")

接下来,我们需要编写一个函数来爬取网页数据。我们可以使用以下代码来定义该函数:

# 爬取网页数据
def crawl_data(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    # 解析网页数据并存储到数据库
    for article in soup.find_all('article'):
        title = article.h2.a.text
        url = article.h2.a['href']
        cur.execute("INSERT INTO data (title, url) VALUES (%s, %s)", (title, url))
        conn.commit()

最后,我们需要编写一个主函数来启动爬虫。我们可以使用以下代码来定义该函数:

# 主函数
def main():
    # 爬取前10页的数据
    for i in range(1, 11):
        url = f'http://example.com/page/{i}'
        crawl_data(url)
    # 关闭数据库连接
    conn.close()

if __name__ == '__main__':
    main()

通过调用主函数,我们可以启动爬虫并爬取指定网页的数据。在这个例子中,我们爬取了一个名为example.com的网页的前10页数据,并将数据存储到名为data的表中。

这就是一个使用Python编写的案例,爬取网页数据并将数据存储到数据库的示例。通过使用Python的强大功能和库,我们可以轻松地爬取网页数据并将其存储到数据库中,以供后续分析和处理。