Puppeteer-py:Python 中的无头浏览器自动化

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: Puppeteer-py:Python 中的无头浏览器自动化
  1. 引言
    在当今快速发展的互联网时代,自动化测试和数据抓取变得越来越重要。Puppeteer-py 作为一个 Python 库,提供了一种简单而强大的方法来控制无头浏览器,实现网页的自动化操作。无论是进行端到端的测试,还是抓取动态生成的数据,Puppeteer-py 都能提供极大的帮助。
  2. 什么是 Puppeteer-py
    Puppeteer-py 是 Puppeteer 的 Python 端口,Puppeteer 是一个 Node.js 库,用于控制无头 Chrome 或 Chromium 浏览器。Puppeteer-py 允许 Python 开发者以编程方式与浏览器交互,执行各种自动化任务。
  3. Puppeteer-py 的特性
    Puppeteer-py 继承了 Puppeteer 的所有特性,并针对 Python 进行了优化。以下是一些关键特性:
    ● 无头浏览器控制:无需打开浏览器界面即可控制浏览器。
    ● 生成截图和 PDF:轻松捕获网页的屏幕截图或生成 PDF 文件。
    ● 自动化表单提交:自动化填写和提交网页表单。
    ● 捕获元素信息:获取页面元素的文本、属性等信息。
    ● 模拟用户行为:模拟点击、滚动、键盘输入等用户行为。
    ● 网络请求拦截:拦截、修改或阻止网络请求。
    ● JavaScript 执行:在页面上下文中执行 JavaScript 代码。
    ● 异步操作:API 设计为异步,提高并发处理能力。
    4.使用 Puppeteer-py 访问京东
    本文将以访问京东网站为案例,演示如何使用 Puppeteer-py 进行自动化操作。详细过程如下:
    4.1 初始化浏览器和页面
    首先,我们需要初始化一个浏览器实例和一个新的页面
    4.2 导航到京东
    接下来,我们将导航到京东的主页:
    4.3 搜索商品
    假设我们要搜索“Python 书籍”,我们可以模拟用户在搜索框中输入文本并点击搜索按钮的行为:
    4.4 等待搜索结果
    搜索结果可能需要一些时间来加载,我们可以使用 page.waitForSelector 方法等待特定的元素加载完成:
    4.5 截图搜索结果
    一旦搜索结果加载完成,我们可以对搜索结果页面进行截图:
    4.6 关闭浏览器
    最后,我们关闭浏览器实例:
    完整代码过程如下所示:
    ```import asyncio
    from puppeteer import Browser, BrowserContext

proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"

async def main():

# 设置代理服务器
proxy = f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"

# 启动浏览器
browser = await Browser.launcher().launch({
    'args': [
        '--proxy-server=' + proxy,
        # 其他需要的启动参数可以在这里添加
    ]
})

# 创建浏览器上下文,并设置代理
browser_context = await browser.createIncognitoBrowserContext()
page = await browser_context.newPage()

# 设置页面代理
await page.setExtraHTTPHeaders({
    'Proxy-Host': proxyHost,
    'Proxy-Port': proxyPort,
    'Proxy-Username': proxyUser,
    'Proxy-Password': proxyPass,
})

# 导航到京东
await page.goto('https://www.jd.com')

# 搜索“Python 书籍”
await page.type('input[name="keyword"]', 'Python 书籍')
await page.click('button[name="search-btn"]')

# 等待搜索结果加载
await page.waitForSelector('div.gl-item')

# 截图搜索结果
await page.screenshot(path='jd_search_result.png')

# 关闭浏览器
await browser.close()

if name == 'main':
asyncio.run(main())
```

  1. 结论
    Puppeteer-py 是一个功能强大的 Python 库,为自动化 web 交互提供了便利。无论是数据抓取、自动化测试还是生成网页截图,Puppeteer-py 都能满足你的需求。通过本文的介绍和示例代码,你应该能够开始使用 Puppeteer-py 进行项目开发。
相关文章
|
4月前
|
Web App开发 人工智能 自然语言处理
Playwright MCP浏览器自动化指南
本文教你如何通过Playwright MCP让AI直接操作浏览器,自动运行和调试代码,无需手动切换界面。只需简单配置,即可用自然语言指挥AI完成页面操作、问题排查与自主修复,真正实现自动化高效开发。
|
4月前
|
人工智能 自然语言处理 监控
Browser Use:打造你的浏览器自动化助手
你是否曾希望用简单的一句话就能让浏览器自动填表、抓数据或做测试?Browser Use 让这成为现实。它结合了语言模型的智能和传统自动化的稳定,能听懂自然语言指令,自己规划步骤,还能应对网页变动和错误。无论是开发者还是普通用户,都能用它高效完成日常操作,省时省力。安装简单,写行指令就能马上体验。
|
5月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
305 0
|
6月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
3月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
514 2
|
3月前
|
数据采集 人工智能 自然语言处理
Playwright MCP 浏览器自动化框架全面解析
Playwright MCP是微软推出的开源项目,结合Playwright与MCP协议,让AI通过结构化数据直接操作浏览器。告别传统视觉识别,实现高效、精准的网页自动化,广泛应用于测试、爬虫、办公自动化等场景,大幅提升效率与可靠性。
|
4月前
|
人工智能 自然语言处理 监控
Playwright MCP浏览器自动化全攻略
Playwright MCP让AI通过自然语言操控浏览器,无需编程即可实现网页自动化。支持智能元素识别、多浏览器操作与动态交互,广泛应用于搜索、数据抓取、自动发布等场景,大幅提升效率,降低技术门槛,是浏览器自动化的新范式。
|
3月前
|
Web App开发 人工智能 JavaScript
入门指南:使用 Playwright MCP Server 为你的 AI Agent 赋予浏览器自动化能力
借助Playwright MCP Server,AI助手可实现网页自动操作:填表、抓数据、执行重复任务。通过MCP协议连接AI与浏览器,让AI从“能说”变为“会做”。支持主流浏览器,配置简单,助力打造智能数字助手。
|
4月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
4月前
|
人工智能 自然语言处理 监控
Browser Use 浏览器自动化 Agent:让浏览器自动为你工作
Browser Use是一款创新浏览器自动化框架,结合LLM智能与自动化技术,能理解自然语言指令,自主操作浏览器完成任务,如数据抓取、表单填写、自动化测试等。具备智能决策、自适应处理、自然语言交互和自我修正能力,简化复杂任务,提升效率。

推荐镜像

更多