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

yizhihongxing

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日

相关文章

  • mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、启用事件(ENABLE)、事件重命名及数据库事件迁移操作详解

    MySQL的事件是一种特殊类型的定期操作,可用于自动执行任务。本文将详细讲解MySQL事件的修改、禁用、启用、重命名以及数据库事件迁移等操作技巧,希望对相关人员有所帮助。 修改事件(ALTER EVENT) 要修改已定义的MySQL事件,可以使用ALTER EVENT语句。可以使用该语句来更改事件的名称、安排方式、计划等。以下是一个修改事件的示例: ALTE…

    python 2023年6月13日
    00
  • Python标准库之随机数 (math包、random包)介绍

    Python标准库是Python程序员开发应用最常用的库之一。其中随机数相关库包含math包和random包。接下来我们来详细介绍一下这两个库的相关内容。 math包 math包是一个与数学相关的库,其中包含了很多数学函数,该库的内容都是一些常用的数学函数。在得到一个随机数之后,我们通常需要对随机数做些处理,比如取整、四舍五入、对数等。math包提供了很多数…

    python 2023年6月3日
    00
  • Python将字典转换为XML的方法

    将字典转换为XML格式是Python编程中常用的一个操作,可以使用Python提供的标准库xml.etree.ElementTree实现。以下是该操作的详细攻略: 前置知识 在进行字典转换为XML格式之前,需要掌握以下前置知识: XML格式的基础语法; Python的基础语法,包括字典的操作; Python标准库xml.etree.ElementTree的使…

    python 2023年6月3日
    00
  • Python jieba库用法及实例解析

    Python jieba库用法及实例解析 jieba是Python中一个非常流行的中文分词库,可以帮助我们将中文文本分割成单个词语。本文将详细讲解jieba库的用法及实例解析。 jieba库的基本用法 jieba库的基本用法非常简单,我们只需要导入jieba库,并调用jieba.cut方法即可将中文文本分割成单个词语。以下是一个简单的Python代码示例: …

    python 2023年5月15日
    00
  • 详解如何在Python中做Hash加密

    在Python中进行Hash加密可以使用内置的hashlib模块,该模块提供了多种Hash算法,我们可以根据需要选择使用的算法进行加密。 下面是具体操作步骤: 导入hashlib模块 import hashlib 使用hashlib模块中的函数进行加密 对于任何需要加密的数据,我们首先需要将其编码为二进制形式,然后使用hashlib模块中的相应函数对其进行加…

    python-answer 2023年3月25日
    00
  • Python中常见的加密解密算法总结

    Python中常见的加密解密算法总结 在Python中,有许多常见的加密解密算法,包括对称加密算法、非对称加密算法、哈希算法等。本文将对这些算法进行总结,并提供两个示例说明。 对称加密算法 对称加密算法是一种加密方式,它使用相同的密钥进行加密和解密。常见的对称加密算法包括AES、DES、3DES等。 示例1:使用AES对称加密算法加密和解密数据 from C…

    python 2023年5月14日
    00
  • python创建n行m列数组示例

    下面给出一个详细的Python创建n行m列数组的攻略。 1. 使用numpy创建n行m列数组 numpy是Python中一个很擅长处理数值计算的第三方库,它提供了很多方便的方法来创建数组。我们可以使用numpy中的zeros方法来创建一个n行m列的全零数组,代码如下: import numpy as np n = 3 m = 4 arr = np.zeros…

    python 2023年6月5日
    00
  • python比较两个列表是否相等的方法

    当我们需要比较两个Python列表是否相等时,可以使用多种方法。下面将介绍其中的三种方法。 方法一:使用==运算符 使用==运符是一种简单的方法可以比较两个列表是否相等。具体实现方法是:使用==运算符比较两个列表是否相,如果相等,则返回True否则返回False。 下是一个示例,演示了如何使用==运算符比较两个列表是否相等: # 使用==算符比较两个列表相等…

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