Python爬取数据并写入MySQL数据库的实例

Python爬取数据并写入MySQL数据库的实例

在本攻略中,我们将介绍如何使用Python爬取数据并将其写入MySQL数据库。我们将使用第三方库requests、BeautifulSoup和pymysql来实现这个功能。

步骤1:创建数据库和表

在编写爬取数据并写入MySQL数据库的代码之前,我们需要先创建数据库和表。以下是一个示例SQL语句,用于创建一个名为example的数据库和一个名为example_table的表:

CREATE DATABASE example;
USE example;
CREATE TABLE example_table (
    id INT(11) NOT NULL AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    PRIMARY KEY (id)
);

步骤2:requests、BeautifulSoup和pymysql库

在创建数据库和表之后,我们可以开始编写爬取数据并写入MySQL数据库的代码了。以下是一个示例代码,用于爬取数据并将其写入MySQL数据库:

import requests
from bs4 import BeautifulSoup
import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='example', charset='utf8mb4')
cursor = conn.cursor()

# 爬取数据
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('title').text
content = soup.find('div', {'class': 'content'}).text

# 写入数据库
sql = "INSERT INTO example_table (title, content) VALUES (%s, %s)"
cursor.execute(sql, (title, content))
conn.commit()

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

在上面的代码中,我们首先导入了requests、BeautifulSoup和pymysql库。然后,我们使用pymysql库连接到MySQL数据库,并使用requests库发送一个GET请求来获取网页内容。接下来,我们使用BeautifulSoup库解析响应的HTML内容,并使用find方法查找标题和内容。然后,我们定义了一个名为sql的变量,用于存储插入数据的SQL语句。接下来,我们使用execute方法执行SQL语句,并使用commit方法提交更改。最后,我们使用close方法关闭游标和连接。

以下是另一个示例代码,用于爬取多个网页并将其写入MySQL数据库:

import requests
from bs4 import BeautifulSoup
import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='example', charset='utf8mb4')
cursor = conn.cursor()

# 爬取数据
urls = ['https://www.example.com/page1', 'https://www.example.com/page2', 'https://www.example.com/page3']
for url in urls:
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    title = soup.find('title').text
    content = soup.find('div', {'class': 'content'}).text

    # 写入数据库
    sql = "INSERT INTO example_table (title, content) VALUES (%s, %s)"
    cursor.execute(sql, (title, content))
    conn.commit()

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

在上面的代码中,我们首先导入了requests、BeautifulSoup和pymysql库。然后,我们使用pymysql库连接到MySQL数据库,并使用一个for循环遍历多个网页。在每个循环中,我们使用requests库发送一个GET请求来获取网页内容。接下来,我们使用BeautifulSoup库解析响应的HTML内容,并使用find方法查找标题和内容。然后,我们定义了一个名为sql的变量,用于存储插入数据的SQL语句。接下来,我们使用execute方法执行SQL语句,并使用commit方法提交更改。最后,我们使用close方法关闭游标和连接。

总结

本攻略介绍了如何使用Python爬取数据并将其写入MySQL数据库。我们使用了requests、BeautifulSoup和pymysql库,并提供了两个示例代码,分别用于爬取单个网页和爬取多个网页。这些技巧可以帮助我们更好地了解Python爬虫编程,并使用requests、BeautifulSoup和pymysql库进行数据爬取和写入。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬取数据并写入MySQL数据库的实例 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python实现复制文档数据

    Python实现复制文档数据 在Python中,我们可以使用多种方法来复制文档数据。本文将介绍两种常用的方法,并提供两个示例。 方法一:使用shutil库复制文件 shutil库是Python标准库之一,提供了许多文件和目录操作的函数。我们可以使用shutil库中的copy()函数来复制文件。 以下是使用shutil库复制文件的示例: import shut…

    python 2023年5月15日
    00
  • 如何使用Python连接和操作MongoDB数据库?

    在Python中,可以使用pymongo模块连接和操作MongoDB数据库。以下是Python使用pymongo模块连接和操作MongoDB数据库的完整攻略,包括连接MongoDB数据库、插入数据、查询数据、和删除数据等操作。 连接MongoDB数据库 在Python中,可以使用pymongo模块连接MongoDB数据库。以下是连接MongoDB数据库的基本…

    python 2023年5月12日
    00
  • Python利用request库实现翻译接口

    在Python中,可以使用requests库实现翻译接口。以下是详细讲解Python利用requests库实现翻译接口的攻略,包含两个例。 使用requests库实现有道翻译接口 有道翻译是一个常用的在线翻译服务,可以使用requests库实现有道翻译接口。以下是一个示例: import requests import json url = ‘http://…

    python 2023年5月15日
    00
  • 是否可以在 python 的类中单独访问实例属性?

    【问题标题】:Is it possible to access instance attributes separately in a class in python?是否可以在 python 的类中单独访问实例属性? 【发布时间】:2023-04-04 00:15:01 【问题描述】: 在下面的代码中,如果我将帐户实例创建为 accnt 并写入 accnt…

    Python开发 2023年4月8日
    00
  • python Scrapy框架原理解析

    Scrapy是一个Python编写的开源网络爬虫框架,它可以用于抓取网站并从中提取结构化数据。Scrapy框架基于Twisted异步网络库,可以高效地处理大量的并发请求。以下是详细的攻略,介绍Scrapy框架的原理和使用方法: Scrapy框架的原理 Scrapy框架的核心是引擎(Engine)、调度器(Scheduler)、下载器(Downloader)、…

    python 2023年5月14日
    00
  • python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)

    Python中的turtle模块提供了一种非常有趣的方式来绘制图形。在本文中,我们将介绍如何使用turtle模块绘制三种递归图形:螺旋、二叉树和谢尔宾斯基三角形。 准备工作 在开始之前,我们需要安装turtle模块,安装方法可以通过以下命令完成: pip install turtle 在安装完成之后,我们就可以开始使用turtle模块绘制图形了。 绘制螺旋 …

    python 2023年5月19日
    00
  • Matplotlib控制坐标轴刻度间距与标签实例代码

    下面我会详细讲解一下Matplotlib控制坐标轴刻度间距与标签实例代码的完整攻略。 1. Matplotlib控制坐标轴刻度间距与标签的方法简介 在Matplotlib中,我们可以使用xticks和yticks方法来控制坐标轴的刻度间距和标签。xticks方法用于设置X轴刻度,而yticks方法用于设置Y轴刻度。 这两个方法的常用参数有: ticks:刻度…

    python 2023年6月6日
    00
  • python3.7 利用函数os pandas利用excel对文件名进行归类

    下面就为大家介绍具体的Python3.7利用函数ospandas利用Excel对文件名进行归类的实例教程。 目标 我们想要完成的目标是,将指定文件夹下的所有文件按照其名称中的关键字归类到对应的文件夹中。 准备工作 在实现之前,我们需要准备以下工作: Python3.7环境 Pandas库 Numpy库 openpyxl库 你可以使用pip安装这些库,命令如下…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部