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实现随机划分图片数据集的示例代码

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

    python 2023年6月3日
    00
  • python 使用while循环输出*组成的菱形实例

    下面是使用Python编写while循环输出*组成菱形的完整攻略。 1. 思路 首先我们需要明确一下本例的思路: 首先需要一个输入,这个输入为一个整数,表示菱形的宽度 然后,我们通过while循环来控制每一行输出的星号数,从而输出整个菱形。 具体细节详见下面代码实现。 2. 代码实现 def print_diamond(width: int): n = (w…

    python 2023年6月5日
    00
  • python-yml文件读写与xml文件读写

    YAML文件读写 YAML是一种数据序列化格式,它比XML更容易阅读和编写。Python中有一个pyyaml库可以用于读写YAML文件。 安装pyyaml库 使用pip命令安装pyyaml库: pip install pyyaml 写YAML文件 可以通过dict对象和PyYAML库将Python字典数据结构写入YAML文件,示例代码如下: import y…

    python 2023年6月3日
    00
  • python数据类型强制转换实例详解

    Python数据类型强制转换实例详解 在Python中,数据类型之间的转换是一个重要的概念。Python提供了很多数据类型强制转换的函数来完成不同类型数据之间的转化。本文将详细介绍数据类型强制转换的实例,包括字符串、数字、列表、元组和字典等常见数据类型的转换。 字符串转整型 在Python中,我们可以使用int()函数将字符串转换为整型。若字符串不能被正确转…

    python 2023年5月14日
    00
  • 操作Windows注册表的简单的Python程序制作教程

    下面是详细讲解“操作Windows注册表的简单的Python程序制作教程”的完整攻略: 前言 在Windows中,注册表是一种用于存储系统和应用程序信息的重要工具。Python是一种功能强大的编程语言,可以轻松地操作注册表。本教程将向您展示如何制作一个简单的Python程序,以便使用Python操作Windows注册表。 步骤 步骤1:导入必要的库 我们首先…

    python 2023年5月31日
    00
  • 信号处理程序在 python 中不起作用

    【问题标题】:signal handler not working in python信号处理程序在 python 中不起作用 【发布时间】:2023-04-06 12:42:01 【问题描述】: 我正在 Raspberry Pi 上编写一个异步视频播放程序。我需要在子进程中运行 omxplayer 并在主进程中接收输入。当接收到一些输入时,主进程会将信号发…

    Python开发 2023年4月7日
    00
  • python 如何利用argparse解析命令行参数

    当我们开发Python命令行应用程序时,我们通常需要从命令行参数中解析出需要的参数,并在程序中使用这些参数完成相应的操作。Python标准库中提供了argparse模块,其目的是让我们可以轻松地解析命令行参数,并自动生成帮助信息。 下面是使用argparse模块解析命令行参数的完整攻略: 步骤 1:导入argparse模块 首先,我们需要导入argparse…

    python 2023年6月3日
    00
  • Python学习之12个常用基础语法详解

    Python学习之12个常用基础语法详解 Python是一种高级编程语言,与其他编程语言相比,具有代码简洁、易学易用等优点。本文将介绍Python的12个常用基础语法,旨在帮助初学者掌握Python编程的基础知识。 1. 变量与数据类型 Python是一种动态类型语言,因此不需要显式地声明变量的数据类型。在Python中,变量的数据类型是根据其赋值内容自动推…

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