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 源码。这些步骤在自动化测试和网页数据抓取中非常有用。

相关推荐
hi星尘1 小时前
深度解析:基于Python的微信小程序自动化操作实现
python·微信小程序·自动化
一城烟雨_2 小时前
vue3 实现将html内容导出为图片、pdf和word
前端·javascript·vue.js·pdf
cxr8283 小时前
基于Playwright的浏览器自动化MCP服务
人工智能·自动化·大语言模型·mcp
群联云防护小杜3 小时前
云服务器主动防御策略与自动化防护(下)
运维·服务器·分布式·安全·自动化·音视频
PPIO派欧云3 小时前
PPIO X OWL:一键开启任务自动化的高效革命
运维·人工智能·自动化·github·api·教程·ppio派欧云
struggle20254 小时前
LinuxAgent开源程序是一款智能运维助手,通过接入 DeepSeek API 实现对 Linux 终端的自然语言控制,帮助用户更高效地进行系统运维工作
linux·运维·服务器·人工智能·自动化·deepseek
一纸忘忧4 小时前
成立一周年!开源的本土化中文文档知识库
前端·javascript·github
北京阿尔泰科技厂家5 小时前
任意波形发生器——2路同步DA模拟量输出卡
fpga开发·自动化·数据采集·仪器仪表·任意波形发生器
软件技术NINI5 小时前
html css js网页制作成品——HTML+CSS甜品店网页设计(4页)附源码
javascript·css·html
涵信6 小时前
第十一节:性能优化高频题-响应式数据深度监听问题
javascript·vue.js·性能优化