下面我将为您详细讲解“Python爬虫获取数据保存到数据库中的超详细教程(一看就会)”这篇文章的内容。
在学习这篇文章之前,您需要掌握以下知识:
如果您还不熟悉以上知识,可以先学习一下相关的教程。
首先,我们需要确定需要爬取的网站和数据。一般来说,我们可以先通过Chrome浏览器的开发者工具进行网络抓包,然后分析抓包结果,确定需要爬取的数据。
编写Python爬虫脚本,使用requests模块获取网页内容,使用beautifulsoup4解析网页内容,获取需要的数据。
示例1:获取天气信息
import requests
from bs4 import BeautifulSoup
# 定义获取天气信息的函数
def get_weather():
# 网站地址
url = "https://tianqi.so.com/"
# 获取网页内容
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
# 获取需要的数据
weather = soup.find("div", {"class": "weather-info"}).text.strip()
# 返回结果
return weather
# 测试函数
print(get_weather())
示例2:获取热门电影信息
import requests
from bs4 import BeautifulSoup
# 定义获取热门电影信息的函数
def get_movies():
# 网站地址
url = "https://movie.douban.com/chart"
# 获取网页内容
r = requests.get(url, headers={"user-agent": "Mozilla/5.0"})
soup = BeautifulSoup(r.text, "html.parser")
# 获取需要的数据
items = soup.find_all("div", {"class": "pl2"})
movies = []
for item in items:
name = item.find("a").text.strip()
rating = item.find("span", {"class": "rating_nums"}).text.strip()
movies.append({"name": name, "rating": rating})
# 返回结果
return movies
# 测试函数
print(get_movies())
使用Python的pymysql模块连接MySQL数据库,将获取的数据存储到数据库中。
示例1:将天气信息存储到数据库中
import pymysql
# 连接数据库
conn = pymysql.connect(
host="localhost",
user="root",
password="password",
database="test",
charset="utf8mb4"
)
# 获取天气信息
weather = get_weather()
# 将天气信息存储到数据库中
with conn.cursor() as cursor:
sql = "INSERT INTO `weather` (`id`, `data`) VALUES (NULL, %s)"
cursor.execute(sql, (weather,))
conn.commit()
# 关闭数据库连接
conn.close()
示例2:将热门电影信息存储到数据库中
import pymysql
# 连接数据库
conn = pymysql.connect(
host="localhost",
user="root",
password="password",
database="test",
charset="utf8mb4"
)
# 获取热门电影信息
movies = get_movies()
# 将热门电影信息存储到数据库中
with conn.cursor() as cursor:
for movie in movies:
sql = "INSERT INTO `movies` (`name`, `rating`) VALUES (%s, %s)"
cursor.execute(sql, (movie["name"], movie["rating"]))
conn.commit()
# 关闭数据库连接
conn.close()
本文讲解了如何使用Python爬虫获取数据并保存到数据库中,包括确定需要爬取的数据、编写爬虫脚本获取数据、连接数据库保存数据等步骤。并且通过两个示例详细说明了如何实现上述步骤。
本文链接:http://task.lmcjl.com/news/15218.html