selenium学习

2023-09-18 23:00:25

selenium模块和爬虫之间的关联

  • 便捷的获取网站中动态加载的数据
  • 便捷实现模拟登录

什么是selenium模块

基于浏览器自动化的一个模块

selenium使用流程:

- 环境安装:pip install selenium
- 下载一个浏览器的驱动程序(谷歌浏览器)
    - 下载路径:http://chromedriver.storage.googleapis.com/index.html

资源绑定了Chrome116对应的chhromedriver.exe

selenium的操作代码:

  • 发起请求:get(url)
  • 标签定位:find_element(By.属性, value='') value是值
  • 标签交互:send_keys('xxx')
  • 执行js程序:excute_script('jsCode')
  • 前进、后退:back(), forward()
  • 关闭浏览器:quit()
标签定位中By的属性有:
    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"
  • selenium处理iframe:
  • 如果定位的标签存在于iframe中,则表明是在标签页的一个子标签页中,必须使用switch_to.frame(id)
  • 动作链(拖动):from selenium.webdriver import ActionChains
    • 实例化一个动作链对象:action = ActionChains(bro)
    • click_and_hold(div):长按且点击操作
    • move_by_offset(x,y)
    • perform()让动作链立即执行
    • action.release()释放动作链对象

selenium的常用操作自动化

找到输入框
在这里插入图片描述

找到搜索按钮
在这里插入图片描述

import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By


service = Service(executable_path='./chromedriver.exe')
browser = webdriver.Chrome(service=service)
browser.get('https://www.taobao.com/')

# 标签定位
search_input = browser.find_element(By.ID, value='q')  # 通过id为q找到搜索框
# 标签交互
search_input.send_keys('iphone')     #发送字符串

# 执行一组js程序
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)
# 点击搜索按钮
btn = browser.find_element(By.CSS_SELECTOR, '.btn-search')  #CSS_SELECTOR用法:   .classname:选择具有指定类名的元素。
btn.click()     # 点击按钮
sleep(5)

browser.get('https://www.baidu.com')
sleep(2)

# 回退
browser.back()
time.sleep(2)

# 前进
browser.forward()
sleep(2)

# 退出浏览器
browser.quit()

"""
By有的函数:
    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"
"""

在这里插入图片描述

04.动作链和iframe的处理.py

from selenium import webdriver
from time import sleep

from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

service = Service(executable_path='./chromedriver.exe')
browser = webdriver.Chrome(service=service)
browser.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')

# 如果定位的标签是存在于iframe标签之中的,则必须通过如下操作进行标签定位
browser.switch_to.frame('iframeResult')   # 切换浏览器标签定位的作用域 参数为iframe标签的id
div = browser.find_element(By.ID, 'draggable')

# 动作链
action = ActionChains(browser)
# 点击长按指定的标签
action.click_and_hold(div)
for i in range(5):
    # perform()立即执行动作链操作
    # move_by_offset(x, y): x:水平方向 y:垂直方向
    action.move_by_offset(18, 0).perform()
    sleep(.5)

# 释放动作链
action.release().perform()

sleep(5)
browser.quit()

在这里插入图片描述

更多推荐

视频编辑SDK:轻松打造专业级视频处理能力

视频编辑SDK是一款强大的技术工具,可以帮助开发者轻松实现视频剪辑、特效处理等功能。美摄科技作为业内知名的视频技术公司,其视频编辑SDK凭借独特的功能和易用性,受到了广大开发者的欢迎。美摄科技的视频编辑SDK支持多种视频格式导入,可实现视频剪辑、拼接、变速、调色等基本功能。同时,它还提供了丰富的特效插件,如文字、滤镜、

python基础

一,什么是pythonPython是一种高级、通用且解释型的编程语言,由GuidovanRossum于1991年首次发布。它具有简洁的语法、清晰的代码结构和强大的功能,被广泛应用于各种领域,包括软件开发、数据分析、人工智能、网络编程等。以下是Python的一些特点和优势:简单易学:Python具有直观、简洁的语法,易于

GDPU 数据结构 天码行空2

实验内容用顺序表实现病历信息的管理与查询功能。具体要求如下:利用教材中定义顺序表类型存储病人病历信息(病历号,姓名,症状);要求使用头文件。设计顺序表定位查找算法,写成一个函数,完成的功能为:在线性表L中查找数据元素x,如果存在则返回线性表中和x值相等的第1个数据元素的序号;如果不存在,则返回-1。函数定义为intLi

数据结构之-----二叉树

目录本章内容如下:1:树的相关概念与结构2:二叉树的概念与结构3:二叉树的链式结构与实现文章正式开始,让我们一起学习树吧!!一:树的概念树是一种非线性结构,与我们前面所学的顺序表与链表不同,数据元素的对应是1对多的关系,只有一个根结点,且除了根节点其它的结点有且仅有1个前驱结点(父结点)。我们可以将一棵树看作由很多个结

计算机和编程语言初见

学习程序设计的目的是什么呢?不一定要做出一个软件或系统出来,更重要的是理解计算机是如何工作的以及它的长处和短处。计算机本身是无意识的,因此我们要求它为我们做事时:应该将步骤细化、“直”化(规律化);其实计算机什么也不会,我们必须手把手地教他一步一步的做。而计算机的某个优点也正是如此——听话,你叫它往东它绝不往西。然后我

Stellar Toolkit for MySQL 9.0 Crack 3in1

面向数据库管理员的MySQL工具包StellarToolkitforMySQL是一款三合一软件套件,用于修复损坏的MySQL和MariaDB数据库、从MySQL数据库的InnoDB和MyISAM表恢复数据以及分析MySQL数据库日志文件。该软件还可以以最高的安全性和完整性相互转换MySQL/MariaDB、MSSQL(

【跟晓月学数据库】基于book库的mysql进阶实战

前言上篇文章中,我们已经导入了book库,如果你还没有导入book库,参考:【跟晓月学数据库】使用MySQLdump对数据导入导出这篇文章,主要是基于book库的操作,希望对你有用。🏠个人主页:我是沐风晓月🧑个人简介:大家好,我是沐风晓月,阿里云社区专家博主😉😉💕座右铭:先努力成长自己,再帮助更多的人,一起加

运营商大数据精准营销获客?

多年来,大数据运营商一直致力于为企业提供互联网大数据精准营销的新项目,并以确保自身信息安全为前提。例如,如果移动用户查看了任何网站,在网页上搜索了任何关键词,登录了应用程序,给任何人打了电话,以及隶属地区、性別,所有这些都由运营商存储,那么企业可以提供需求,运营商可以根据客户行为找到准确的意向客户。高质量的新客户可以基

定义爬虫规则和数据存储

定义爬虫规则是指确定爬虫程序应该如何访问和提取网页数据的规则。这些规则包括确定要爬取的网页的URL、确定要提取的数据类型和位置、确定爬取的深度和频率等。爬虫规则通常由以下几个方面组成:起始URL:确定爬虫程序开始爬取的网页URL。URL过滤规则:确定哪些URL应该被爬取,哪些URL应该被忽略。可以使用正则表达式或其他方

支持向量机(SVM)案例分析

支持向量机(supportvectormachines,SVM)是一种二分类模型,所谓二分类模型是指比如有很多特征(自变量X)对另外一个标签项(因变量Y)的分类作用关系,比如当前有很多特征,包括身高、年龄、学历、收入、教育年限等共5项,因变量为‘是否吸烟’,‘是否吸烟’仅包括两项,吸烟和不吸烟。那么该5个特征项对于‘是

【C++基于多设计模式下的同步&异步日志系统】

文章目录@[toc]1:peach:项目介绍:peach:2:peach:开发环境:peach:3:peach:核心技术:peach:4:peach:环境搭建:peach:5:peach:日志系统介绍:peach:5.1:apple:为什么需要日志系统?:apple:5.2:apple:日志系统技术实现:apple:5

热文推荐