python Selenium爬取内容并存储至MySQL数据库的实现代码

Python Selenium爬取内容并存储至MySQL数据库的实现代码

Python Selenium是一个自动化测试工具,可以模拟用户在浏览器中的操作,如点击、输入、滚动等。我们可以使用Python Selenium来爬取网页内容,并将其存储至MySQL数据库中。本文将详细讲解Python Selenium爬取内容并存储至MySQL数据库的实现代码,包括安装Selenium、连接MySQL数据库、爬取网页内容、存储至MySQL数据库等内容,并提供两个示例。

安装Selenium

在使用Python Selenium之前,我们需要先安装Selenium库。我们可以使用pip命令安装Selenium,如下所示:

pip install selenium

连接MySQL数据库

在使用Python Selenium爬取内容并存储至MySQL数据库之前,我们需要先连接MySQL数据库。我们可以使用以下代码连接MySQL数据库:

import pymysql

db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4')
cursor = db.cursor()

在上面的代码中,我们首先导入pymysql库,并使用pymysql.connect()方法连接到MySQL数据库。然后,我们创建了一个名为cursor的游标对象,用于执行SQL语句。

爬取网页内容

在连接MySQL数据库之后,我们可以使用Python Selenium爬取网页内容。以下是一个使用Python Selenium爬取网页内容的示例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

element = driver.find_element_by_id('kw')
element.send_keys('Python Selenium')
element.submit()

results = driver.find_elements_by_css_selector('.result h3 a')
for result in results:
    print(result.text)

在上面的代码中,我们首先导入webdriver类,并创建了一个名为driver的ChromeDriver对象。然后,我们使用driver.get()方法打开了百度首页,并使用driver.find_element_by_id()方法找到了搜索框,并使用send_keys()方法输入了搜索关键字。接着,我们使用submit()方法提交了搜索请求,并使用driver.find_elements_by_css_selector()方法找到了搜索结果中的标题,并将其打印到控制台上。

存储至MySQL数据库

在爬取网页内容之后,我们可以使用以下代码将其存储至MySQL数据库:

sql = 'INSERT INTO `articles` (`title`, `url`) VALUES (%s, %s)'

for result in results:
    title = result.text
    url = result.get_attribute('href')
    cursor.execute(sql, (title, url))
    db.commit()

在上面的代码中,我们首先定义了一个名为sql的SQL语句,用于将数据插入到MySQL数据库中。然后,我们使用for循环遍历搜索结果,并使用result.text和result.get_attribute()方法获取标题和URL。接着,我们使用cursor.execute()方法执行SQL语句,并使用db.commit()方法提交事务。

示例1:爬取百度搜索结果并存储至MySQL数据库

以下是一个爬取百度搜索结果并存储至MySQL数据库的示例:

from selenium import webdriver
import pymysql

db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4')
cursor = db.cursor()

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

element = driver.find_element_by_id('kw')
element.send_keys('Python Selenium')
element.submit()

results = driver.find_elements_by_css_selector('.result h3 a')

sql = 'INSERT INTO `articles` (`title`, `url`) VALUES (%s, %s)'

for result in results:
    title = result.text
    url = result.get_attribute('href')
    cursor.execute(sql, (title, url))
    db.commit()

driver.quit()
db.close()

在上面的代码中,我们首先连接到MySQL数据库,并创建了一个名为cursor的游标对象。然后,我们创建了一个名为driver的ChromeDriver对象,并使用driver.get()方法打开了百度首页。接着,我们使用driver.find_element_by_id()方法找到了搜索框,并使用send_keys()方法输入了搜索关键字。然后,我们使用submit()方法提交了搜索请求,并使用driver.find_elements_by_css_selector()方法找到了搜索结果中的标题和URL。最后,我们使用for循环遍历搜索结果,并使用cursor.execute()方法将数据插入到MySQL数据库中。

示例2:爬取豆瓣电影排行榜并存储至MySQL数据库

以下是一个爬取豆瓣电影排行榜并存储至MySQL数据库的示例:

from selenium import webdriver
import pymysql

db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4')
cursor = db.cursor()

driver = webdriver.Chrome()
driver.get('https://movie.douban.com/chart')

results = driver.find_elements_by_css_selector('.pl2 a')

sql = 'INSERT INTO `movies` (`title`, `url`) VALUES (%s, %s)'

for result in results:
    title = result.text
    url = result.get_attribute('href')
    cursor.execute(sql, (title, url))
    db.commit()

driver.quit()
db.close()

在上面的代码中,我们首先连接到MySQL数据库,并创建了一个名为cursor的游标对象。然后,我们创建了一个名为driver的ChromeDriver对象,并使用driver.get()方法打开了豆瓣电影排行榜页面。接着,我们使用driver.find_elements_by_css_selector()方法找到了电影标题和URL,并使用for循环遍历搜索结果,并使用cursor.execute()方法将数据插入到MySQL数据库中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python Selenium爬取内容并存储至MySQL数据库的实现代码 - Python技术站

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

相关文章

  • Python局部函数及用法详解(含nonlocal关键字)

    Python局部函数及用法详解(含nonlocal关键字) 什么是局部函数? 在Python中,函数可以作为一个独立的对象返回或者被作为参数传递给其他函数,并可以在函数内部定义另一个函数,这个在Python中被称之为局部函数。例如: def outer(): def inner(): print("This is a inner function&…

    python 2023年6月5日
    00
  • 教你学会使用Python正则表达式

    教你学会使用Python正则表达式 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。Python中的re模块供了正则表达式支持,方便进行字符串的处理。本文详细讲解Python中正则表达式的使用方法,包括正表达式语法、re模块的常用函数以及两个用配实例。 正则表达式语法 正则表达式由些特殊字符和普通字符组成,用于字符串模式匹。下面…

    python 2023年5月14日
    00
  • python统计字母、空格、数字等字符个数的实例

    下面是“python统计字母、空格、数字等字符个数的实例”的完整攻略。 1. 分析需求 首先,我们需要分析需求,即统计字母、空格、数字等字符的个数。在Python中,可以通过字符串的方法来实现这个功能。我们需要遍历字符串中的每个字符,判断是字母、空格还是数字,并进行相应的计数。最终得到字母、空格、数字等字符的个数。 2. 编写代码 接下来,我们可以编写Pyt…

    python 2023年6月5日
    00
  • Python实现随机划分图片数据集的示例代码

    下面是Python实现随机划分图片数据集的完整攻略。 1. 问题背景 在机器学习领域中,将数据集按照一定的比例划分为训练集、验证集和测试集是一项基础任务。 数据集的划分对模型训练和评估的结果都有着至关重要的影响,因此我们需要仔细地进行划分。 在本次攻略中,我们将采用Python语言实现对图片数据集的随机划分,并且按照规定的比例划分为训练集和验证集,代码也可以…

    python 2023年6月3日
    00
  • Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头

    完整攻略 本攻略介绍了如何使用Python和OpenCV实现图像处理,包括打印图片属性、设置存储路径、调用摄像头等操作。 打印图片属性 我们可以使用OpenCV中的cv2.imread函数加载图片,并使用cv2.imshow函数在窗口中显示图片。图片属性包含了图片的高度、宽度、通道等信息,可以通过img.shape获得。示例代码如下: # 导入相关库 imp…

    python 2023年5月18日
    00
  • python实现定时自动备份文件到其他主机的实例代码

    下面是 Python 实现定时自动备份文件到其他主机的攻略,包括两个完整的示例代码。 步骤一:安装必要的库 我们需要使用 paramiko 库来建立 SSH 连接,使用 schedule 库来实现定时任务。首先需要安装它们,可以使用 pip 命令来安装: pip install paramiko pip install schedule 步骤二:编写备份脚本…

    python 2023年5月19日
    00
  • python删除本地夹里重复文件的方法

    当我们在日常的工作中,特别是处理大量文件的时候,经常会出现本地文件夹里有大量重复的文件。如何在Python中快速的删除这些重复文件呢?本文将介绍利用Python删除本地夹里重复文件的方法。 步骤 遍历文件夹:利用Python的os模块,遍历文件夹中的所有文件,得到每个文件的路径及其文件名。 计算文件哈希值:对于每个文件,计算它的哈希值。如果两个文件的哈希值相…

    python 2023年6月3日
    00
  • Python的标准模块包json详解

    Python的标准模块包json详解 简介 json是Python标准库中的一个模块,用于处理JSON格式的数据。它提供了一种简单的方法将Python对象转换为JSON格式的字符串,以及将JSON格式的字符串转换为Python对象。 使用方法 将Python对象转换为JSON格式字符串 使用json.dumps()方法可以将Python对象转换为JSON格式…

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