在使用爬虫获取网站数据的时候,将数据保存到数据库是一个常见的操作。本文将介绍如何使用Python将爬虫获取到的数据保存到MySQL数据库。
首先,需要安装MySQL数据库驱动包。我们使用Python的第三方库pymysql来连接MySQL数据库。
pip install pymysql
接下来,创建一个db_config.py文件存储MySQL数据库的配置信息,并且初始化pymysql的连接。
import pymysql
# 数据库配置信息
HOST = "localhost"
USER = "root"
PASSWORD = "password"
DATABASE = "database_name"
CHARSET = "utf8mb4"
# 初始化连接
def get_conn():
conn = pymysql.connect(
host=HOST,
user=USER,
password=PASSWORD,
database=DATABASE,
)
return conn
创建一个名为spider.py的文件,在这个文件中,我们使用requests和BeautifulSoup库来爬取数据。这里以爬取糗事百科的段子为例,爬取之后保存到MySQL数据库。
import requests
from bs4 import BeautifulSoup
from db_config import get_conn
# 获取网页内容
def get_html(url):
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
return html
# 爬取糗事百科段子
def get_jokes():
url = "https://www.qiushibaike.com/text/"
html = get_html(url)
soup = BeautifulSoup(html, "html.parser")
jokes = soup.find_all(class_="text")
conn = get_conn()
cursor = conn.cursor()
for joke in jokes:
content = joke.get_text().strip()
insert_sql = f"INSERT INTO jokes(content) VALUES('{content}')"
cursor.execute(insert_sql)
conn.commit()
cursor.close()
conn.close()
if __name__ == '__main__':
get_jokes()
在这个代码段中,我们先向糗事百科网站发送请求获取网页内容,然后使用BeautifulSoup解析网页内容,提取出段子并且将段子保存到MySQL数据库中。在保存之前,我们需要打开数据库连接并且创建一个游标,执行SQL语句,最后关闭连接。
通过上面的代码,我们成功将爬虫文件保存到MySQL数据库中。当然,这只是一个简单的例子,你可以根据自己的需求爬取更多的数据,并且保存到MySQL数据库。同时也可以使用其他数据库,比如MongoDB等。