Selenium 进行网页自动化操作的一个示例,绕过一些网站的自动化检测。python编程

初级教程

selenium 教程和视频教程s原理与安装 - 白月黑羽

https://www.byhy.net/auto/selenium/01/#chrome 1

Selenium 自动化环境安装_哔哩哔哩_bilibili

Selenium 自动化环境安装是Python + Selenium Web自动化 2024版 - 自动化测试 爬虫的第2集视频,该合集共计35集,视频收藏或关注UP主,及时了解更多相关视频内容。

https://www.bilibili.com/video/BV1Z4411o7TA?spm_id_from=333.788.player.switch\&vd_source=efbefa737a60b2966747a4383eed8b09\&p=2

高级教程

selenium使用本地浏览器用户数据保持登录_哔哩哔哩_bilibiliselenium使用本地浏览器用户数据保持登录, 视频播放量 4702、弹幕量 0、点赞数 37、投硬币枚数 16、收藏人数 114、转发人数 4, 视频作者 Data工程师, 作者简介 code and data is cheap, show me your ppt! ,相关视频:selenium和playwright工具类保持登录,不要再学selenium了,DrissionPage更香,我写了一个开源的指纹浏览器,【2024】各种软件付费VIP歌曲免费听、下载,实现永久白嫖,不再付费!!!,鸿蒙系统800万行的代码,在当今世界上到底处于什么水平?,【2024版大麦网抢票脚本】Python全自动门票秒杀脚本,拒绝黄牛,从我做起!!!,表白源码来咯,全网首发3D爱心粒子代码,手机也能看,确定不发给对象看看?【附源码】,我教你爬虫不是爬我的网站视频去卖钱卖的比我还便宜啊。,自动登录,IP代理池都不教就敢来爬我的网站!https://www.bilibili.com/video/BV1Ww411N7we?spm_id_from=333.788.videopod.sections&vd_source=efbefa737a60b2966747a4383eed8b09

代码解释

导入必要的模块

```python

from selenium.webdriver import Chrome, ChromeOptions

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions

from selenium.webdriver.support.wait import WebDriverWait

```

  • `Chrome` 和 `ChromeOptions`:用于创建 Chrome 浏览器实例和配置选项。

  • `Service`:用于指定 ChromeDriver 的路径。

  • `By`:用于定位页面元素。

  • `expected_conditions` 和 `WebDriverWait`:用于显式等待页面元素的出现。

配置 Chrome 选项

```python

options = ChromeOptions()

...(这里省略了之前提到的选项配置代码)...

```

  • 这里省略了之前提到的配置代码,包括设置性能日志等。

创建 WebDriver 实例

```python

service = Service(executable_path=executable_path)

driver = Chrome(service=service, options=options)

```

  • `Service(executable_path=executable_path)`:指定 ChromeDriver 的路径。

  • `Chrome(service=service, options=options)`:创建一个 Chrome 浏览器实例,并应用之前配置的选项。

执行自定义 JavaScript 代码

```python

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",

{"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})

```

  • `execute_cdp_cmd`:执行 Chrome DevTools Protocol (CDP) 命令。

  • `"Page.addScriptToEvaluateOnNewDocument"`:在新文档加载时执行的脚本。

  • `{"source": ...}`:要执行的 JavaScript 代码。

  • 这段 JavaScript 代码的作用是删除 `navigator.webdriver` 属性,这通常用于绕过一些网站的自动化检测。

打开网页

```python

driver.get(page_url)

```

  • `driver.get(page_url)`:打开指定的网页 URL。

显式等待页面元素出现

```python

wait = WebDriverWait(driver, 15, 0.5)

try:

wait.until(expected_conditions.presence_of_element_located((By.CLASS_NAME, "item ")))

except Exception as e:

print("WebDriverWait.until timeout error: {}".format(e))

```

  • `WebDriverWait(driver, 15, 0.5)`:创建一个显式等待对象,最多等待 15 秒,每 0.5 秒检查一次。

  • `wait.until(expected_conditions.presence_of_element_located((By.CLASS_NAME, "item ")))`:等待页面上出现类名为 `item` 的元素。

  • 如果等待超时,会捕获异常并打印错误信息。

获取页面 HTML 源码

```python

html = driver.execute_script("return document.documentElement.outerHTML")

```

  • `driver.execute_script("return document.documentElement.outerHTML")`:使用 JavaScript 获取整个页面的 HTML 源码,并将其存储在变量 `html` 中。

总结

这段代码展示了如何使用 Selenium 进行网页自动化操作,包括配置浏览器选项、执行自定义 JavaScript 代码、显式等待页面元素的出现以及获取页面的 HTML 源码。这些步骤在自动化测试和网页数据抓取中非常有用。

相关推荐
小慧10247 分钟前
ROS2快速入门0--节点
开发语言·javascript·ecmascript
不吃香菜mm21 分钟前
Vue方法、计算机属性及侦听器
前端·javascript·vue.js
疯狂的沙粒1 小时前
React 中事件机制详细介绍:概念与执行流程如何更好的理解
前端·javascript·react.js
姜来前端程序媛2 小时前
阿里云直播Web
前端·javascript·阿里云
徐小黑ACG2 小时前
JavaScript 自定义属性、间歇函数、事件监听。以及综合运用案例
开发语言·前端·javascript
蓝桉柒72 小时前
JavaScript Chrome 中的运行
前端·javascript·chrome
顾尘眠2 小时前
vue2日历组件
前端·javascript·css
我想学LINUX2 小时前
【2024年华为OD机试】 (A卷,100分)- 对称美学(Java & JS & Python&C/C++)
java·c语言·javascript·c++·python·华为od
公众号:ITIL之家2 小时前
CI/CD与自动化运维的结合:加速交付与稳定运维
运维·ci/cd·自动化
七里汀3 小时前
关于husky8.0 与 4.0的配置
javascript·git