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

python selenium4 EdgeDriver动态页面爬取

截止至2024.7.16

chrome浏览器最新版本为126.0.6478.127

但对应的chromeDriver版本都低于此版本,因此,转用Edge浏览器

说明:仅记录自己使用过程中用到的一些代码和感受,看具体情况不定期更新。

 selenium官方文档

1、安装selenium及下载EdgeDriver

pip install selenium

edgeDriver下载地址

2、在环境变量的path中,放入EdgeDriver的路径

3、抓取

import random
from selenium import webdriver
from selenium.webdriver.common.by import ByUSER_AGENT_LIST = [   'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.6 (KHTML, like Gecko) Chrome/2.0.174.0 Safari/530.6','Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.6 Safari/525.19','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.599.0 Safari/534.13','Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Chrome/7.0.521.0 Safari/534.8','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1','Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5'
]def user_agent():return random.choice(USER_AGENT_LIST)url ='待爬网址'
edge_options = webdriver.EdgeOptions()
edge_options.use_chromium = True  # 指定使用基于Chromium的Edge浏览器
edge_options.add_argument("headless")  # 无界面模式
edge_options.add_argument("disable-gpu")  # 禁用GPU加速
#因为是遍历查询,所以加入了随机user-agent
edge_options.add_argument("user-agent="+user_agent())
driver = webdriver.Edge(options=edge_options)
driver.get(url)              

4、常用代码

1、查找elements(这返回的是数组,如果确定唯一的,则用find_element)

links = driver.find_elements(By.XPATH,'//div[@class="jbxx-content"]//a')

注:语法跟xpath相似

2、获取WebElement的属性值

cos = link.get_attribute("href")

3、执行click事件

#如果报ElementClickInterceptedException错误的话
driver.execute_script("arguments[0].scrollIntoView();",link)
#执行点击事件
link.click()

4、获取text值

text = driver.find_element(By.ID, "justanotherlink").text
http://www.lryc.cn/news/403462.html

相关文章:

  • 【一次记一句:SQL】从 information_schema.TABLES中查询数据库表中记录数据量
  • NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)
  • FPGA资源容量
  • Zabbix介绍和架构
  • 打造智慧图书馆:AI视频技术助力图书馆安全与秩序管理
  • Go的数据结构与实现【LinkedList】
  • Ubuntu22.04安装CUDA+CUDNN+Conda+PyTorch
  • 当“广撒网”遇上“精准定点”的鱼叉式网络钓鱼
  • svn ldap认证临时切换到本地认证
  • 极狐GitLab如何配置使用独立数据库?
  • TCP状态转换详解
  • SimMIM:一个类BERT的计算机视觉的预训练框架
  • 数据精度丢失
  • Element UI DatePicker选择日期范围区间默认显示前一个月和本月
  • C++:聚合类、嵌套类、局部类、union类详细介绍与分析
  • MKS流量计软件MFC通讯驱动使用于C和P系列MFC控制USB接口W10系统
  • C++:左值/右值引用、移动语义/std::move、万能引用/完美转发std::forward 详解
  • 蜂窝物联云平台:一站式服务,智能生活从此开始!
  • 【中项】系统集成项目管理工程师-第3章 信息技术服务-3.3服务生命周期
  • 【iOS】——消息传递底层实现
  • PostgreSQL数据库从入门到精通系列之十:表空间、索引表空间、创建表空间、创建索引空间、创建分区表、创建分区表的分区、创建指定表空间、索引表空间的分区表
  • 恶补,先验分布,后验分布 ,似然估计
  • JS之数组中的reduce方法
  • 在win10上通过WSL和docker安装Ubuntu子系统,并配置Ubuntu可成功使用宿主机GPU
  • python需要掌握那些语法
  • CentOS Mysql8 数据库安装
  • 新手教程---python-函数(新添加)
  • Windows tasklist命令详解,Windows查看进程
  • 数据结构——线性表(循环链表)
  • 深度剖析机构号矩阵系统:如何根据业务需求做出明智选择