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

yizhihongxing

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日

相关文章

  • 浅谈Python3中datetime不同时区转换介绍与踩坑

    浅谈Python3中datetime不同时区转换介绍与踩坑 在Python3中使用datetime库进行不同时区转换是一件非常普遍的事情,但是其中也有一些坑需要注意。本文将详细介绍datetime库中的不同时区转换,并分享两个实例帮助理解。 datetime库简介 在Python3中,datetime模块是处理日期和时间的主要模块之一。该模块提供了很多类和函…

    python 2023年6月2日
    00
  • Python 操作 MongoDB 讲解详细

    Python操作MongoDB讲解详细 MongoDB是一种开源的NoSQL数据库,它是基于文档存储,而不是传统的表格关系型存储。Python可以很容易地与MongoDB集成,本文将介绍如何使用Python操作MongoDB。 安装MongoDB 首先,我们需要在本地安装MongoDB数据库。安装步骤因操作系统而异,具体请参考官方文档:https://doc…

    python 2023年5月14日
    00
  • 在Python中使用NumPy将Hermite_e系列提高到一个幂数

    将Hermite_e系列提升到一个更高的幂,可以通过NumPy的多项式模块numpy.polynomial.hermite_e实现。下面是详细步骤: 导入所需模块 使用NumPy之前,需要先导入相关模块。因此,我们需要将numpy和numpy.polynomial.hermite_e两个模块导入到Python环境中。 import numpy as np f…

    python-answer 2023年3月25日
    00
  • python 8种必备的gui库

    下面来详细讲解关于“Python 8种必备的GUI库”的完整攻略。 Python 8种必备的GUI库 概述 GUI是指图形用户界面,是人与计算机通信的界面。与命令行相比,GUI更加直观易懂,提高了用户交互体验。Python是一种流行的编程语言,有很多GUI库供开发人员使用。本文将介绍8种Python GUI库。 Tkinter Tkinter是Python的…

    python 2023年5月30日
    00
  • python3 map函数和filter函数详解

    Python3 map函数和filter函数详解 在Python3中,map函数和filter函数是两个常用的函数,它们可以对列表、元组等可迭代对象进行操作。本文将详细介绍map函数和filter函数的用法,并提供两个示例。 map函数 map函数可以对可迭代对象中的每个元素应用一个函数,并返回一个新的可迭代对象,其中包含应用函数后的结果。 以下是map函数…

    python 2023年5月15日
    00
  • Python实现迪杰斯特拉算法并生成最短路径的示例代码

    下面是详细讲解“Python实现迪杰斯特拉算法并生成最短路径的示例代码”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 Dijkstra算法是一种用于查找图中最短路径的算法。其主要思想是从起点开始,逐步扩展到其他节点,直到到达终点。在扩展的过程中,记录每个节点的最短路径和前驱节点,最终得到起点到终点的最短路径。Dijkstra算法的实现…

    python 2023年5月14日
    00
  • python实现创建新列表和新字典,并使元素及键值对全部变成小写

    创建新列表和新字典并把其中的元素和键值对都变为小写可以分别使用以下两种方法实现: 1.创建新列表并把其中的元素都变为小写: 首先,需要定义一个原始列表original_list,然后使用列表推导式创建一个新列表new_list。在列表推导式中,对于原始列表中的每一个元素,我们都使用字符串的lower()方法把它转换为小写形式。 original_list =…

    python 2023年5月13日
    00
  • 将 Python str 中的连接元素保留为列表转换

    【问题标题】:Preserving concatenated elements in a Python str to list conversion将 Python str 中的连接元素保留为列表转换 【发布时间】:2023-04-02 04:29:01 【问题描述】: 我想知道是否有一种特殊的方法可以让我获取一个列表元素 ([“3D”]),并使用 for …

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部