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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 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 进行项目开发。
相关文章
|
27天前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
60 14
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
5天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
104 60
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
30天前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
84 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
17天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
49 7
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
51 7
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4
|
30天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
数据采集 JavaScript 前端开发
浏览器自动化
浏览器自动化利用工具(如Selenium WebDriver、Puppeteer)模拟用户行为,实现测试、数据抓取等功能。它涵盖启动/关闭浏览器、元素定位操作、事件模拟、性能及可访问性测试等,广泛应用于Web应用的开发与维护,提升测试效率和可靠性。