在AWS Lambda中使用Docker和Selenium实现Chrome自动化的最简示例

Ray

docker-selenium-lambda

AWS Lambda上的Chrome自动化利器:docker-selenium-lambda项目详解

在云计算和无服务器架构日益普及的今天,如何在AWS Lambda这样的serverless环境中实现浏览器自动化,成为了许多开发者面临的一大挑战。GitHub上的开源项目docker-selenium-lambda为我们提供了一个绝佳的解决方案,让我们来深入了解这个项目。

项目概述

docker-selenium-lambda是由GitHub用户umihico开发的一个开源项目,旨在提供一个最简单的demo,展示如何在AWS Lambda环境中使用Python和Selenium实现Chrome浏览器的自动化操作。该项目已获得519颗星和125次fork,显示出其受欢迎程度和实用价值。

GitHub项目页面

技术栈和版本

该项目采用了以下技术栈:

  • Python 3.12.3
  • Chromium 128.0.6613.119
  • ChromeDriver 128.0.6613.119
  • Selenium 4.24.0

这些组件版本会自动更新并每天进行测试,以确保项目的稳定性和兼容性。

项目特点

  1. 简单易用:项目提供了最小化的demo,方便用户快速上手。
  2. 自动更新:组件版本会自动更新,确保使用最新的稳定版本。
  3. Docker封装:使用Docker容器封装环境,解决了Lambda环境中的依赖问题。
  4. 灵活配置:支持自定义Docker镜像,满足不同的需求。

如何使用

要运行这个demo,你需要按照以下步骤操作:

  1. 安装Serverless Framework(如果尚未安装):

    npm install -g serverless@^3
    
  2. 设置AWS区域(可选,默认为us-east-1):

    export AWS_REGION=ap-northeast-1
    
  3. 创建项目并进入项目目录:

    sls create --template-url "https://github.com/umihico/docker-selenium-lambda/tree/main" --path docker-selenium-lambda && cd $_
    
  4. 部署项目:

    sls deploy
    
  5. 调用函数:

    sls invoke --function demo
    

如果一切顺利,你将看到example.com网站的文本内容被抓取并返回。

公共镜像使用

项目还提供了公共镜像,如果你想使用更简单且自动更新的镜像,可以修改Dockerfile如下:

FROM umihico/aws-lambda-selenium-python:latest

COPY main.py ./
CMD [ "main.handler" ]

可用的镜像标签可以在Docker Hub上查看。

相关项目

如果你对Node.js或Playwright感兴趣,作者还推荐了另一个项目:docker-playwright-lambda

此外,如果你不想为每个目的创建单独的函数,可以看看pythonista-chromeless项目。

总结

docker-selenium-lambda项目为在AWS Lambda上实现Chrome自动化提供了一个简单而强大的解决方案。通过Docker容器化和自动更新的组件,它解决了环境依赖和版本兼容性的问题,使得在serverless环境中运行Selenium变得简单可行。

无论你是想要进行网页抓取、自动化测试,还是其他需要浏览器自动化的任务,这个项目都为你提供了一个很好的起点。随着serverless架构的日益普及,像docker-selenium-lambda这样的工具将变得越来越重要,帮助开发者在云环境中实现更多的可能性。

Selenium自动化示意图

如果你对这个项目感兴趣,不妨去GitHub上给它点个星,或者尝试将它集成到你自己的项目中。相信有了docker-selenium-lambda,你在AWS Lambda上的Chrome自动化之旅将会变得更加顺畅!

avatar
0
0
0
相关项目
Project Cover

first-order-model

First Order Motion Model项目提供了一种先进的图像动画运动模型,通过驾驶视频和源图像生成逼真的动画序列。支持包括VoxCeleb、Fashion和MGIF在内的多种数据集,提供详细的安装和使用指南。项目支持Python和Docker,确保了环境兼容性,还提供Colab和Kaggle的在线演示。此外,该项目还具备面部交换功能,适用于监督和非监督的视频编辑任务。

Project Cover

cvat

CVAT是一个计算机视觉的交互式视频和图像标注工具,被全球数万用户和企业广泛使用。提供免费在线版和自托管解决方案,支持Roboflow和HuggingFace集成。支持多种标注格式,并通过自动标注功能加速标注过程。企业用户可享受高级功能和专业支持服务。

Project Cover

openui

OpenUI简化了UI组件的构建,支持实时渲染和多框架转换(如React、Svelte)。兼容OpenAI、Groq等多种模型,并支持本地与Docker运行,适用于各种开发环境。

Project Cover

Flowise

Flowise让您通过拖放界面轻松创建自定义LLM应用程序。提供详细的快速安装指南,支持NodeJS和Docker部署。模块化架构对开发者友好,并支持自托管,适用于AWS、Azure、Digital Ocean等主流云平台,确保应用灵活且易扩展。

Project Cover

deepo

Deepo是一个开源框架,用于轻松组装深度学习研究的Docker镜像。通过提供多种标准组件和定制化Dockerfile生成器,用户可以简单定义环境并自动解决依赖问题。Deepo支持几乎所有常用的深度学习框架,提供预构建的Docker镜像,支持GPU加速和CPU模式,兼容Linux、Windows和OS X。尽管该项目已停止维护,但仍为快速搭建深度学习环境提供了宝贵的工具和资源。

Project Cover

serving

TensorFlow Serving 是一个为生产环境设计的灵活且高性能的机器学习模型推理系统。它管理训练后的模型生命周期,通过高效查询表提供版本化访问,支持多模型和多版本同时部署。系统支持 gRPC 和 HTTP 推理端点,允许无缝部署新版本,支持金丝雀发布和 A/B 测试,并且延迟极低。调度器将推理请求分组以在 GPU 上联合执行,支持包括 TensorFlow 模型、嵌入、词汇表和特征转换在内的多种服务对象。

Project Cover

ragapp

RAGapp是一款企业级Agentic RAG解决方案,配置简单如OpenAI的自定义GPT,可通过Docker部署在云基础设施中。基于LlamaIndex构建,支持OpenAI和Gemini托管AI模型以及本地Ollama模型。提供Docker Compose和即将推出的Kubernetes部署选项。访问Admin UI进行配置,详情请参阅各端点和安全信息。

Project Cover

chatgpt-web

该项目独立开发自ChatGPT Web,新增注册、登录、密码重置、双因素认证、多用户管理及会话同步功能,支持通过身份验证代理实现单点登录。提供OpenAI官方API和非官方代理服务器两种ChatGPT API使用方法,适应多种环境部署。项目开源免费,仅供学习使用。

Project Cover

TensorRT

NVIDIA TensorRT 开源软件提供插件和 ONNX 解析器的源码,展示 TensorRT 平台功能的示例应用。这些组件是 TensorRT GA 版本的一部分,并包含扩展和修复。用户可以轻松安装 TensorRT Python 包或根据构建指南编译。企业用户可使用 NVIDIA AI Enterprise 套件,并可加入 TensorRT 社区获取最新产品更新和最佳实践。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号