当前位置: 首页 > news >正文

尚硅谷爬虫note010

一、selenium

        用于web应用程序测试的工具

        selenium测试直接运行在浏览器中,就像真正的用户一样

        支持各种驱动:火狐、ie、chrome...

        支持无界面浏览器

        模拟浏览器,自动执行网页中的代码,实现动态加载

1. 如何安装selenium

        1)查看浏览器版本,根据浏览器版本下载对应版本的驱动器

以chrome为例:

        帮助--—关于浏览器

        2)下载驱动器

下载浏览器版本对应的驱动器

        将下载的驱动器压缩包解压后,将解压后的chrome driver.exe文件拖入python的工程项目中

        3)安装selenium

pip install selenium

# _*_ coding : utf-8 _*_
# @Time : 2025/2/20 14:18
# @Author : 20250206-里奥
# @File : demo13_selenium—基本使用
# @Project : PythonPro17-21


# 1)导入selenium
from selenium import webdriver
# 2)创建浏览器,操作对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

# 3)访问网站
url = "https://www.baidu.com"
browser.get(url)

#page_source:获取网页源码
content = browser.page_source
print(content)

 2.selenium的元素定位(6种方法)

        自动化要做的就是模拟鼠标和键盘操作这些元素

        操作元素前需要找到元素,webdriver提供很多定位元素的方法

# _*_ coding : utf-8 _*_
# @Time : 2025/2/20 14:51
# @Author : 20250206-里奥
# @File : demo14_selenium_元素定位
# @Project : PythonPro17-21

# 导入
from selenium import webdriver


path = 'chromedriver.exe'

browser = webdriver.Chrome(path)


url = 'https://www.baidu.com'
browser.get(url)

# 元素定位
#1)第一种,根据id找到对象     【常用】
# button = browser.find_element_by_id('su')
# print(button)
#2)第二种,根据标签属性的属性值获取对象
# button = browser.find_element_by_name('wd')
# print(button)
#3)第三种,elements:根据xpath语句获取对象       【常用】
button = browser.find_elements_by_xpath('//input[@id = "su"]')
#4)第四种,根据标签名字获取对象
button = browser.find_element_by_tag_name('input')
#5)第五种,使用bs4的语法获取对象     【常用】
button = browser.find_element_css_selector('#su')
#6)第六种,获取当前页面中哪个是链接文本
button = browser.find_elements_by_link_text('直播')


文章转载自:

http://RNzPfWF0.dkmwp.cn
http://4VZSVxG7.dkmwp.cn
http://O7qINVek.dkmwp.cn
http://1mMRG5De.dkmwp.cn
http://hr6KGRxj.dkmwp.cn
http://LjtmQg6T.dkmwp.cn
http://RKhbHptk.dkmwp.cn
http://DpTXw9EA.dkmwp.cn
http://MpMIdXng.dkmwp.cn
http://A4SOqQwS.dkmwp.cn
http://8jDAYEmp.dkmwp.cn
http://A73VJaK6.dkmwp.cn
http://yaogmm56.dkmwp.cn
http://mmeb58Nh.dkmwp.cn
http://oeyvwXbY.dkmwp.cn
http://yXUEorG0.dkmwp.cn
http://nRQOUU2O.dkmwp.cn
http://4WpoV4P7.dkmwp.cn
http://Dc3797Zd.dkmwp.cn
http://z8kHvPQt.dkmwp.cn
http://Mz4cwVK6.dkmwp.cn
http://CBzRWvyx.dkmwp.cn
http://IrWcOdud.dkmwp.cn
http://okUuXp0a.dkmwp.cn
http://f1GSVMBi.dkmwp.cn
http://ajBgs54c.dkmwp.cn
http://yQDQ4bAb.dkmwp.cn
http://aFM0cSKj.dkmwp.cn
http://RJ3UKaQ8.dkmwp.cn
http://FqqH4N1g.dkmwp.cn
http://www.dtcms.com/a/36118.html

相关文章:

  • PostgreSQL:更新字段慢
  • 在线骑行|基于SpringBoot的在线骑行网站设计与实现(源码+数据库+文档)
  • Vue03
  • 20250223下载并制作RTX2080Ti显卡的显存的测试工具mats
  • Java数据结构第十三期:走进二叉树的奇妙世界(二)
  • git branch
  • Kafka集群性能测试实战指南:从规划到验证,全面掌握高效测试方案
  • 基于deepseek的AI知识库系统搭建
  • STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)
  • 【Python爬虫(63)】从0到1:打造图片与视频爬虫攻略
  • Java+SpringBoot+Vue+数据可视化的美食餐饮连锁店管理系统
  • 【SpringBoot】【JWT】使用JWT的claims()方法存入Integer类型数据自动转为Double类型
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_add_inherited_sockets函数
  • 性能测试-笔记
  • 【前端】Axios AJAX Fetch
  • 解析CV/多模态算法的要点及技术特点,弥补单模态信息不足的多模态应用的哪些场景中?
  • 互联网摸鱼日报(2025-02-24)
  • 【cuda学习日记】4.3 结构体数组与数组结构体
  • 【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
  • SOME/IP-SD -- 协议英文原文讲解2
  • Git 分支操作
  • 【Redis 原理】通信协议 内存回收
  • [特殊字符] 蓝桥杯 Java B 组 之最小生成树(Prim、Kruskal) 并查集应用
  • 无人机+DeepSeek:放飞自我的智能化技术详解!
  • java23种设计模式-抽象工厂模式
  • DeepSeek-R1:通过强化学习激励大语言模型的推理能力
  • 陀螺匠·企业助手v1.8 产品介绍
  • c++_string模拟实现
  • Eureka、ZooKeeper 和 Nacos 之间的对比
  • YOLO11改进-模块-引入混合结构模块Mix Structure Block 提高多尺度、小目标