Pyppeteer Python加载扩展及示例

简介: Pyppeteer 是一个 Python 库,可以控制无头 Chrome 或 Chromium 浏览器,并在网页加载过程中加载扩展来增强浏览器功能。Pyppeteer 提供了一个 API,让您可以与无头浏览器交互,完成网页抓取、自动化测试、网页截图或 PDF 生成等任务。加载扩展的功能可以让您在浏览器导航到网页时,运行自定义的 JavaScript 代码,从而改变浏览器的行为。

有代码的显示器8.jpg

Pyppeteer 是一个 Python 库,可以控制无头 Chrome 或 Chromium 浏览器,并在网页加载过程中加载扩展来增强浏览器功能。Pyppeteer 提供了一个 API,让您可以与无头浏览器交互,完成网页抓取、自动化测试、网页截图或 PDF 生成等任务。加载扩展的功能可以让您在浏览器导航到网页时,运行自定义的 JavaScript 代码,从而改变浏览器的行为。您可以在页面加载之前对页面进行操作,例如修改 DOM(文档对象模型)、拦截网络请求、注入其他脚本等。一些常见的加载扩展的用例有:

  • 网络请求拦截:您可以修改页面发出的网络请求或响应,实现自定义的请求处理逻辑、阻止某些请求或向请求中添加额外数据。
  • 页面内容修改:您可以在加载过程中改变页面的 DOM,删除或更改元素、修改 HTML、CSS 或 JavaScript 代码等。
  • 附加功能注入:您可以添加自定义的 JavaScript 代码,在加载页面的上下文中运行,执行特定操作或与页面内容交互。

总之,Pyppeteer 的加载扩展功能可以让您扩展浏览器功能并自定义网页加载时的行为,实现更强大、更灵活的自动化和 Web 内容交互。要使用这个功能,您需要在启动浏览器时指定扩展路径,并使用 --disable-extensions-except 和 --load-extension 标志。例如:

importasynciofrompyppeteerimportlaunchfrompyppeteer_stealthimportstealth# 定义扩展路径,用于屏蔽广告、图片和视频extension_path="C:\\Users\\PC_USER\\AppData\\Local\\BraveSoftware\\Brave-Browser\\User Data\\Default\\Extensions\\ofjjanaennfbgpccfpbghnmblpdblbef\\1.3_0"# 亿牛云 爬虫代理加强版# 定义 代理IP用户名、密码、主机、端口proxy_username="16YUN"proxy_password="16IP"proxy_ip="www.16yun.cn"proxy_port="31000"# 定义一个异步函数,用于采集头条网站的新闻标题asyncdefscrape_toutiao():
# 启动浏览器,加载扩展,并设置代理 IPbrowser=awaitlaunch({
'headless': False,
'slowMo': 5,
'options': {
'args': [
f'--disable-extensions-except={extension_path}',
f'--load-extensions={extension_path}',
'--enable-automation',
'--start-maximized',
'--hide-scrollbars',
'--disable-bundled-ppapi-flash',
'--mute-audio',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-gpu',
f'--proxy-server=http://{proxy_ip}:{proxy_port}'#代理IP地址和端口              ]},
'defaultViewport': None})# 创建一个新页面,并使用 stealth 模式page=awaitbrowser.newPage()
awaitstealth(page)
# 导航到头条网站,并等待页面加载完成awaitpage.goto('https://www.toutiao.com', {'waitUntil': 'networkidle2'})
# 输入代理 IP 的用户名和密码,并点击确认按钮awaitpage.type('#username', proxy_username)
awaitpage.type('#password', proxy_password)
awaitpage.click('#confirm')
# 获取页面中的新闻标题元素,并提取文本内容titles=awaitpage.evaluate('''() => {        let elements = document.querySelectorAll('.title-box a')        let titles = []        for (let element of elements) {            titles.push(element.innerText)        }        return titles    }''')
# 打印前 100 个新闻标题fori, titleinenumerate(titles[:100]):
print(f'{i+1}. {title}')
# 关闭浏览器awaitbrowser.close()
# 运行异步函数asyncio.get_event_loop().run_until_complete(scrape_toutiao())



相关文章
|
JSON API 数据格式
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
|
缓存 JSON API
VIN车辆识别码查询车五项 API 实践指南:让每一俩车有迹可循(Python代码示例)
VIN(车辆识别代码)是全球唯一的17位汽车标识码,可快速获取车架号、发动机号、品牌型号等核心信息。在二手车交易、保险理赔、维修保养等场景中,准确解析VIN有助于提升效率与风控能力。本文介绍VIN码结构、适用场景,并提供Python调用示例及优化建议,助力企业实现车辆信息自动化核验。
1807 1
|
JSON 缓存 API
身份证二要素核验接口调用指南 —— Python 示例
本文介绍如何在 Python 中快速实现身份证二要素核验功能,适用于用户注册、金融风控等场景。通过阿里云市场提供的接口,可校验「姓名 + 身份证号」的一致性,并获取性别、生日、籍贯等信息。示例代码展示了从环境变量读取 APP_CODE、发送 GET 请求到解析 JSON 响应的完整流程。关键字段包括 code(1-一致,2-不一致,3-无记录)、msg 和 data。常见问题如 403 错误需检查 AppCode,超时则优化网络或设置重试机制。集成后可根据业务需求添加缓存、限流等功能提升性能。
1342 4
|
JSON API UED
运营商二要素验证 API:核验身份的一致性技术实践(Python示例)
随着线上业务快速发展,远程身份核验需求激增。运营商二要素验证API通过对接三大运营商实名数据,实现姓名、手机号、身份证号的一致性校验,具备权威性高、实时性强的优势,广泛应用于金融、电商、政务等领域。该接口支持高并发、低延迟调用,结合Python示例可快速集成,有效提升身份认证的安全性与效率。
1258 0
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
1178 77
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
2059 58
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。

推荐镜像

更多