Python BeautifulSoup数据库存储技巧
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文件进行备份和分析。
相关文章