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 $.proxy()方法

    jQuery $.proxy()方法用于更改函数的上下文(即this关键字的值)。它返回一个新函数,该函数具有指定的上下文和参数。 以下是$.proxy()的详细略: 语法 $.proxy(function, context, [additionalArguments]) 参数 function:必需,要更改上文的函数。 context:必需,要设置为函数上…

    jquery 2023年5月9日
    00
  • jQWidgets jqxListBox valueMember属性

    jQWidgets jqxListBox valueMember属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。ListBox是其中之一。本文将详细介绍jqxListBox的valueMember属性,包括定义、语法和示例。 valueMember属性的定义 jqxListBox的valueMember属性用于设置列…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTreeMap hoverEnabled属性

    以下是关于 jQWidgets jqxTreeMap 组件中 hoverEnabled 属性的详细攻略。 jQWidgets jqxTreeMap hoverEnabled 属性 jQWidgets jqxTreeMap 的 hoverEnabled 属性用于启用或禁用标悬停事件。您可以使用此属性来控制是否允许用户在鼠标悬停时查看数据项的详细信息。 语法 $…

    jquery 2023年5月12日
    00
  • jQuery UI Tooltips显示选项

    以下是关于 jQuery UI Tooltips 显示选项的详细攻略: jQuery UI Tooltips 显示选项 可以使用显示选项来控制工具提示部件的显示方式。 选项 show: 显示工具提示的延迟时间(以毫秒为单位)。 hide: 隐藏具提示延迟时间(以毫秒为)。 effect: 显示和隐藏工具提示时使用的效果。可以是 “fade”、”slide” …

    jquery 2023年5月11日
    00
  • jQWidgets jqxCheckBox高度属性

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxCheckBox,它用于创建选框。jqxCheckBox 有一个 height 属性,用于设置组件的高度。下是关于 jqxCheckBox 的 height 属性的详细攻略: height 属性概述 height 属性用于设置 jqxChe…

    jquery 2023年5月11日
    00
  • jQWidgets jqxButton textPosition属性

    jQWidgets jqxButton textPosition属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxButton是其中之一。本文将详细介绍jqxButton的textPosition属性,包括定义、语法和示例。 textPosition属性的定义 jqxButton的textPosition用于设置…

    jquery 2023年5月10日
    00
  • jQWidgets jqxButton高度属性

    jQWidgets jqxButton高度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxButton是其中之一。本文将详细介绍jqxButton的高度属性,包括定义、语法和示例。 高度属性的定义 jqxButton的高度属性用于设置按钮的高度。 高度属性的语法 jqxButton的高度属性的基本语法如下: $…

    jquery 2023年5月10日
    00
  • jQWidgets jqxNavigationBar expandingItem 事件

    以下是关于 jQWidgets jqxNavigationBar 组件中 expandingItem 事件的详细攻略。 jQWidgets jqxNavigationBar expandingItem 事件 jQWidgets jqxNavigationBar 的 expandingItem 事件在导航中的项被展开之前触发。 语法 // 监听 expandi…

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