python爬虫开发之selenium模块详细使用方法与实例全解

Python爬虫开发之Selenium模块详细使用方法与实例全解

什么是Selenium?

Selenium 是一个自动化测试工具,支持多种浏览器(Chrome、Firefox、IE、Edge 等)和多种操作系统(Windows、Linux、MacOS 等)。Selenium 可以用于自动化测试、爬虫和数据采集等领域。

安装

使用 pip 命令安装:

pip install selenium

同时还需要安装对应浏览器的驱动(例如 Chrome 的驱动为 chromedriver),安装方法可以参考官方文档:https://www.selenium.dev/documentation/zh-cn/webdriver/driver_requirements/

基本用法

打开网页

from selenium import webdriver

driver = webdriver.Chrome()  # 创建 Chrome 浏览器对象
driver.get("https://www.baidu.com")  # 打开网页

查找元素

# 通过 ID 查找
elem = driver.find_element_by_id("kw")

# 通过 Name 查找
elem = driver.find_element_by_name("wd")

# 通过 Class Name 查找
elem = driver.find_element_by_class_name("s_ipt")

# 通过 CSS Selector 查找
elem = driver.find_element_by_css_selector("#kw")

# 通过 XPath 查找
elem = driver.find_element_by_xpath("//input[@id='kw']")

输入文本

elem.send_keys("Python")

点击按钮

button = driver.find_element_by_id("su")
button.click()

获取元素的属性值

elem.get_attribute("value")

关闭浏览器

driver.quit()

示例:京东商品筛选

以下代码演示了如何使用 Selenium 筛选京东商品:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# 创建 Chrome 浏览器对象
driver = webdriver.Chrome()

# 打开京东首页
driver.get("https://www.jd.com")

# 输入搜索关键词
elem = driver.find_element_by_css_selector("#key")
elem.send_keys("手机")
elem.send_keys(Keys.RETURN)

# 筛选商品
filter_elem = driver.find_element_by_css_selector("#J_filter > div.f-line.top > div.f-sort > a:nth-child(2)")
filter_elem.click()

# 获取商品列表
goods = driver.find_elements_by_class_name("gl-item")

# 输出商品信息
for item in goods:
    name = item.find_element_by_class_name("p-name").text
    price = item.find_element_by_css_selector(".p-price i").text
    print(name, price)

# 关闭浏览器
driver.quit()

示例:自动登录 GitHub

以下代码演示了如何使用 Selenium 自动登录 GitHub:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

USER_NAME = "your_username"
PASSWORD = "your_password"

# 创建 Chrome 浏览器对象
driver = webdriver.Chrome()

# 打开 GitHub 登录页面
driver.get("https://github.com/login")

# 输入用户名和密码
elem = driver.find_element_by_id("login_field")
elem.send_keys(USER_NAME)
elem = driver.find_element_by_id("password")
elem.send_keys(PASSWORD)
elem.send_keys(Keys.RETURN)

# 登录成功后跳转到 GitHub 主页
assert "GitHub" in driver.title

# 关闭浏览器
driver.quit()

以上就是 Selenium 的基本用法和两个示例,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫开发之selenium模块详细使用方法与实例全解 - Python技术站

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

相关文章

  • jQuery UI的Draggable destroy()方法

    以下是关于 jQuery UI 的 Draggable destroy() 方法的详细攻略: jQuery UI 的 Draggable destroy() 方法 jQuery UI 的 Draggable destroy() 方法用于销毁已创建的可拖动元素。该方法可以通过 jQuery draggable() 方法调用。 语法 $( ".sele…

    jquery 2023年5月11日
    00
  • jQWidgets jqxDropDownButton getContent()方法

    jQWidgets jqxDropDownButton getContent()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI组件和工具包括表格下拉等。jqxDropDownButton是jQWidgets的组件之一,用于创建下拉按钮。getContent()方法是jqxDropDownButton的一个方法,用于获取下拉按钮的…

    jquery 2023年5月9日
    00
  • jQuery中选择器的基础使用教程

    下面详细讲解一下“jQuery中选择器的基础使用教程”的完整攻略。 一、选择器简介 在jQuery中,选择器就是一种查询HTML元素的方法。它类似于CSS中的选择器,通过使用选择器,可以轻松地获取到想要的元素,然后对它们进行操作。 二、选择器语法 标签选择器 标签选择器就是根据HTML元素的标签名来选择元素。比如,$(‘div’) 就会选择网页中的所有&lt…

    jquery 2023年5月18日
    00
  • jQWidgets jqxNavigationBar collapseAnimationDuration属性

    以下是关于 jQWidgets jqxNavigationBar 组件中 collapseAnimationDuration 属性的详细攻略。 jQWidgets jqxNavigationBar collapseAnimationDuration 属性 jQWidgets jqxNavigationBar 组件的 collapseAnimationDura…

    jquery 2023年5月12日
    00
  • jQuery :reset 选择器

    以下是关于jQuery :reset选择器的完整攻略: 什么是:reset选择器? :reset选择器是jQuery中一种选择器,用于选择所有类型为重置按钮的元素。 如何使用:reset选择器? 可以使用以下代码选择类型为重置按钮的元素: $(":reset") 这个代码中,:reset是指选择所有类型为重置按钮的元素。 示例1:选择所有…

    jquery 2023年5月12日
    00
  • jQWidgets jqxInput selectAll()方法

    jqxInput 是 jQWidgets 提供的一种输入框控件,用于在 Web 应用程序中创建输入框。selectAll() 方法是 jqxInput 控件的一个方法,用于选择输入框中的所有文本。以下是 jqxInput 的 selectAll() 方法的详细说明: 方法 selectAll() 方法用于选择输入框中的所有文本。 // 选择 jqxInput…

    jquery 2023年5月10日
    00
  • jQWidgets jqxInput popupZIndex属性

    jQWidgets jqxInput popupZIndex属性攻略 简介 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供丰富的 UI 组件和工具用于创建现代化应用程序。jqxInput 组件用于创建一个文本输入框。本攻略详细介绍 jqxInput 组件 popupZIndex 属性,包括如何使用和示例。 使用 jqxInput 组件的…

    jquery 2023年5月10日
    00
  • Json 生成与解析详解及实例代码

    Json 生成与解析详解及实例代码 什么是 JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。 它基于JavaScript语言的一个子集,以易于人们阅读和编写的文本格式来传输和存储数据。 JSON采用键值对(key-value)的方式来表示数据对象,同时支持数组和嵌套。 JSON具有结构简单、易于解析、轻…

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