Python BeautifulSoup数据库存储技巧

2023年 8月 12日 63.3k 0

BeautifulSoup是一个功能强大的Python库,用于解析HTML、XML、JSON等文档。在爬取和解析网页内容的过程中,我们有时需要将解析后的数据存储到数据库中。下面我们将讲解Python BeautifulSoup数据库存储技巧,包括MySQL、MongoDB和SQLite3等数据库。

  • MySQL数据库存储
  • 首先,我们需要安装pymysql库,用于连接MySQL数据库。

    pip install pymysql

    然后,我们可以通过以下代码创建一个表格并将数据存储到MySQL数据库中。

    import pymysql
    from bs4 import BeautifulSoup
    import requests

    # 连接MySQL数据库
    conn = pymysql.connect(host='localhost', user='root', password='123456', db='mydb', charset='utf8')
    cursor = conn.cursor()

    # 创建表格
    sql_create = "CREATE TABLE IF NOT EXISTS `mytable` (`id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
    cursor.execute(sql_create)

    # 爬取网页内容并解析
    url = 'https://www.pidancode.com/'
    html = requests.get(url).text
    soup = BeautifulSoup(html, 'html.parser')

    # 提取标题和链接并存储到数据库中
    for link in soup.find_all('a'):
    title = link.get_text().strip()
    link = link.get('href')
    if link and 'http' in link:
    sql_insert = "INSERT INTO `mytable` (`title`, `url`) VALUES ('%s', '%s')" % (title, link)
    try:
    cursor.execute(sql_insert)
    conn.commit()
    except:
    conn.rollback()

    # 关闭连接
    cursor.close()
    conn.close()

    在上面的代码中,我们首先连接Mysql数据库,然后创建一个名为“mytable”的表格。接着,我们爬取网页内容并解析出标题和链接,并将其存储到数据库中。

  • MongoDB数据库存储
  • 要使用MongoDB存储数据,我们需要安装pymongo库。

    pip install pymongo

    然后,我们可以通过以下代码将数据存储到MongoDB数据库中。

    import pymongo
    from bs4 import BeautifulSoup
    import requests

    # 连接MongoDB数据库
    client = pymongo.MongoClient('mongodb://localhost:27017/')
    db = client['mydb']
    collection = db['mycollection']

    # 爬取网页内容并解析
    url = 'https://www.pidancode.com/'
    html = requests.get(url).text
    soup = BeautifulSoup(html, 'html.parser')

    # 提取标题和链接并存储到数据库中
    for link in soup.find_all('a'):
    title = link.get_text().strip()
    link = link.get('href')
    if link and 'http' in link:
    data = {'title': title, 'url': link}
    collection.insert_one(data)

    在上面的代码中,我们首先连接到MongoDB数据库,然后爬取网页内容并解析出标题和链接,并将其存储到名为“mycollection”的集合中。

  • SQLite3数据库存储
  • 要使用SQLite3存储数据,我们需要使用Python内置的sqlite3模块。

    import sqlite3
    from bs4 import BeautifulSoup
    import requests

    # 连接SQLite3数据库
    conn = sqlite3.connect('mydb.db')
    cursor = conn.cursor()

    # 创建表格
    sql_create = "CREATE TABLE IF NOT EXISTS `mytable` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` TEXT NOT NULL, `url` TEXT NOT NULL);"
    cursor.execute(sql_create)

    # 爬取网页内容并解析
    url = 'https://www.pidancode.com/'
    html = requests.get(url).text
    soup = BeautifulSoup(html, 'html.parser')

    # 提取标题和链接并存储到数据库中
    for link in soup.find_all('a'):
    title = link.get_text().strip()
    link = link.get('href')
    if link and 'http' in link:
    sql_insert = "INSERT INTO `mytable` (`title`, `url`) VALUES ('%s', '%s')" % (title, link)
    cursor.execute(sql_insert)
    conn.commit()

    # 关闭连接
    cursor.close()
    conn.close()

    在上面的代码中,我们首先连接SQLite3数据库,然后创建一个名为“mytable”的表格。接着,我们爬取网页内容并解析出标题和链接,并将其存储到数据库中。

    总结

    以上就是Python BeautifulSoup数据库存储技巧的详细介绍,分别介绍了MySQL、MongoDB和SQLite3三种数据库的存储方法。在实际开发中,我们可以根据需求选择合适的数据库进行存储。同时,我们也可以通过pandas库将数据导出为Excel文件或CSV文件进行备份和分析。

    相关文章

    Oracle如何使用授予和撤销权限的语法和示例
    Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
    下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
    社区版oceanbase安装
    Oracle 导出CSV工具-sqluldr2
    ETL数据集成丨快速将MySQL数据迁移至Doris数据库

    发布评论