当前位置: 首页 > 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('直播')

相关文章:

  • 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
  • 政府网站建设的论文/简述seo的概念
  • 瑞安网站建设/创建网站步骤
  • 合肥网站建设合肥网站制作/环球网最新消息
  • 成都酒店网站建设/今日深圳新闻最新消息
  • 做便民网站都需要哪些模块/优化设计答案四年级上册语文
  • 网站建设全包广/广东整治互联网霸王条款