关键词

Python爬虫获取数据保存到数据库中的超详细教程(一看就会)

下面我将为您详细讲解“Python爬虫获取数据保存到数据库中的超详细教程(一看就会)”这篇文章的内容。

一、前置知识

在学习这篇文章之前,您需要掌握以下知识:

  • Python基础语法
  • 数据库基础知识
  • 爬虫基础知识

如果您还不熟悉以上知识,可以先学习一下相关的教程。

二、Python爬虫获取数据保存到数据库中的步骤

  1. 确定需要爬取的网站和数据

首先,我们需要确定需要爬取的网站和数据。一般来说,我们可以先通过Chrome浏览器的开发者工具进行网络抓包,然后分析抓包结果,确定需要爬取的数据。

  1. 编写爬虫脚本获取数据

编写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())
  1. 连接数据库保存数据

使用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

展开阅读全文