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实现希尔伯特变换(Hilbert transform)的示例代码

    我们来讲一下Python实现希尔伯特变换的示例代码攻略。 什么是希尔伯特变换 希尔伯特变换是一种非常常用且重要的信号处理方法,它可以将实数信号转换成复数信号。复数信号可以用于计算信号的频谱,而实数信号则不行。希尔伯特变换可以被用于多种领域,如音频处理、通信等。 如何实现希尔伯特变换 Python实现希尔伯特变换可以通过以下几步来实现: 1、加载需要的库和数据…

    python 2023年6月3日
    00
  • python爬取亚马逊书籍信息代码分享

    下面我来详细讲解“python爬取亚马逊书籍信息代码分享”的完整攻略。 一、准备工作 在进行爬虫操作前,需要安装相关依赖包: requests:用于发起网络请求 lxml:用于解析HTML文档 安装命令如下: pip install requests pip install lxml 二、分析网页结构 在进行爬虫操作前,需要先分析目标网页的结构。这里以亚马逊…

    python 2023年6月3日
    00
  • Python学习之字典和集合的使用详解

    Python学习之字典和集合的使用详解 一、字典 字典是Python中一种重要的数据结构,也是我们常用的一种数据结构。它是一种保存着键值对的数据结构,每个键对应着一个值。要创建一个空字典,可以使用 dict() 函数;要创建一个非空字典,可以使用花括号 {} 括起来,里面用逗号分隔键值对,格式为 “key:value”。 例如,创建一个字典d,它包含一个键值…

    python 2023年5月13日
    00
  • 举例详解Python中threading模块的几个常用方法

    下面是详细讲解Python中threading模块的几个常用方法的攻略。 一、什么是Python threading模块 Python中的线程模块是Python中实现线程的标准模块之一,它可以用来创建、管理线程以及线程的同步操作。它提供了 Thread、Lock、Event、Condition、Semaphore 和 Timer 等基本组件。 在Python…

    python 2023年5月19日
    00
  • 用Python实现等级划分

    下面是使用Python实现等级划分的完整攻略: 1. 等级划分的概述 等级划分是对数据集进行分类的一种常用方式,通过将数据集划分为多个等级或类别,实现对数据集的管理和使用。在Python中,我们可以使用数值型等序变量或类别型变量中的标称型、序数型变量,对数据集进行等级划分。 2. 使用等序变量实现等级划分 在使用等序变量实现等级划分时,需要将数据集中的值按照…

    python 2023年6月2日
    00
  • Unicode错误python

    【问题标题】:Unicode error pythonUnicode错误python 【发布时间】:2023-04-07 21:00:01 【问题描述】: 这是问题的要点。我正在尝试从 REST API 调用中获取数据并将它们存储在数据库中。然后我运行了几个查询来找出 TOP 3 用户。我无法将从 MySQL 获取的所有列表值打包到 JSON 文件中。 我无…

    Python开发 2023年4月8日
    00
  • python函数定义和调用过程详解

    让我来详细讲解一下Python函数定义和调用过程的完整攻略。 函数的定义 在Python中,函数是一段可以被调用执行的代码块,函数可以接受传入的参数,也可以返回值。 函数的定义格式如下: def function_name(parameter1, parameter2, …): statement1 statement2 … return resul…

    python 2023年6月5日
    00
  • Python中使用copy模块实现列表(list)拷贝

    在Python中,我们可以使用copy模块中的copy()函数或deepcopy()函数来实现列表的拷贝。具体来说,copy()函数用于浅拷贝,即只拷贝中的元素的引用,而不元素本身;copy()函数用于深拷贝,即拷贝列表中的元素及其子元。下面分别介绍这两个函数的用法。 copy()函数的用法 copy()函数用于浅拷贝,即只拷贝列表中的元素的引用,而不是元素…

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