WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率

本文主要是介绍WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

亿牛云爬虫代理

介绍

随着互联网数据的爆炸式增长,爬虫技术成为了获取信息的重要工具。在实际应用中,如何提升浏览器自动化的效率是开发者常常面临的挑战。Chrome DevTools Protocol(CDP)与Selenium WebDriver相结合,为浏览器自动化提供了强大的控制能力,并允许用户直接与浏览器的底层交互。本文将通过使用CDP优化Selenium的效率,结合代理IP技术,实现对微博数据的高效采集,并通过设置cookie和user-agent模拟真实用户行为。

技术分析
1. Chrome DevTools Protocol 简介

Chrome DevTools Protocol 是一个可以让开发者与浏览器直接通信的工具。通过CDP,开发者可以访问和操作浏览器的低层功能,例如网络拦截、性能分析、JavaScript调试等。相比传统的WebDriver方式,CDP提供了更细粒度的控制,能够进一步提升浏览器自动化任务的效率。

2. Selenium与CDP结合

Selenium是最常用的浏览器自动化工具之一,通过集成CDP,我们可以更灵活地控制浏览器。例如,能够在网络层面上拦截请求并设置代理,或动态修改请求头(如设置cookie和user-agent)。这种能力使得爬虫程能提高数据获取效率。

3. 代理IP的使用

在实际爬虫过程中,使用代理IP可以避免IP被封禁,提高爬虫的稳定性。本文采用亿牛云爬虫代理作为示例,通过代理实现IP轮换功能,确保微博数据的采集高效且稳定。

4. 代码示例:微博数据采集

以下是结合CDP和代理IP的Selenium爬虫代码,展示如何实现cookie和user-agent的设置:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time# 配置代理IP 亿牛云爬虫代理 www.16yun.cn
PROXY_HOST = "代理服务器域名"  # 替换为亿牛云爬虫代理提供的域名
PROXY_PORT = "代理服务器端口"  # 替换为亿牛云爬虫代理提供的端口
PROXY_USER = "代理用户名"     # 替换为亿牛云爬虫代理提供的用户名
PROXY_PASS = "代理密码"       # 替换为亿牛云爬虫代理提供的密码# Chrome DevTools Protocol 选项配置
chrome_options = Options()
chrome_options.add_argument("--disable-blink-features=AutomationControlled")  # 绕过检测
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument(f"--proxy-server=http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}")# 设置User-Agent
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36")# 启动浏览器
driver_service = Service(executable_path='chromedriver')  # 指定chromedriver路径
driver = webdriver.Chrome(service=driver_service, options=chrome_options)# 访问微博热搜页面
driver.get("https://s.weibo.com/top/summary")# 等待页面加载完成
time.sleep(5)# 获取热搜榜单元素
hot_search_list = driver.find_elements(By.CSS_SELECTOR, ".td-02 a")# 创建热搜信息列表,用于归类整理
hot_search_data = []# 遍历热搜信息
for index, item in enumerate(hot_search_list):# 获取热搜标题和链接title = item.textlink = item.get_attribute("href")# 将热搜信息整理为字典形式hot_search_data.append({"排名": index + 1,"标题": title,"链接": link})# 打印归类整理后的热搜信息
for entry in hot_search_data:print(f"排名: {entry['排名']}, 标题: {entry['标题']}, 链接: {entry['链接']}")# 关闭浏览器
driver.quit()
代码说明:
  1. 微博热搜页面访问:通过driver.get("https://s.weibo.com/top/summary"),直接访问微博热搜页面。
  2. 等待页面加载:使用time.sleep(5),确保页面加载完毕后再进行爬取。可以根据网络状况调整等待时间。
  3. 热搜数据提取:通过find_elements(By.CSS_SELECTOR, ".td-02 a"),获取热搜榜单中的所有链接和标题信息。
  4. 数据归类整理:将热搜的排名、标题和链接信息以字典形式存储在hot_search_data列表中,便于后续使用和分析。

代码执行后,会按照微博热搜的排名依次输出热搜标题及其对应的链接,数据将会被整理归类,方便进一步使用或存储。

结论

在浏览器自动化任务中,Chrome DevTools Protocol与Selenium WebDriver的结合为开发者提供了强大的控制能力。通过使用CDP,开发者可以高效采集数据,提升爬虫的成功率。配合代理IP技术和cookie、user-agent的设置,爬虫程序可以更稳定、真实地模拟用户行为,从而获取更多有价值的数据。

这篇关于WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139181

相关文章

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d