Token导航 LogoToken导航

Agent Skill · 开发

apify-actor-developer(apify 演员开发者)

apify-actor-developer 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

apify-actor-developer 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 19,854。

总安装 250周安装 10GitHub Stars 1下载 81核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:apify-actor-developer(apify 演员开发者)
来源仓库:https://github.com/yfe404/apify-actor-developer-skill
仓库路径:skills/apify-actor-developer
安装命令:
npx skills add https://github.com/yfe404/apify-actor-developer-skill --skill apify-actor-developer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/yfe404/apify-actor-developer-skill --skill apify-actor-developer

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

用于构建、测试、部署和商业化 Apify Actors 无服务器应用。支持 Node.js 或 Python 模板创建,涵盖爬虫、自动化等多种场景。需提前安装 Apify CLI 并完成登录认证 apify login。可通过 apify create 命令选择不同技术栈模板初始化项目。

适用于需要快速搭建数据整理或自动化流程的开发者。

来源仓库内路径:skills/apify-actor-developer

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/yfe404/apify-actor-developer-skill --skill api…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

apify-actor-developer 怎么安装?

在终端执行 npx skills add https://github.com/yfe404/apify-actor-developer-skill --skill apify-actor-d…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

apify-actor-developer 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

apify-actor-developer 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

apify-actor-developer 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

apify-actor-developer 用的人多吗?

公开数据是累计安装 250 次,近一周安装 10 次,下载 81 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

apify-actor-developer 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
apify-actor-developer

apify 演员开发者 · 本页

2501操作浏览器未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Apify Actor Developer

Build, test, deploy, and monetize Apify Actors - serverless cloud applications for web scraping, data extraction, and automation.

Prerequisites

Ensure these are available:

  • Node.js 18+ or Python 3.9+
  • Apify CLI: npm install -g apify-cli
  • Logged in: apify login

Workflow

Phase 1: Project Initialization

  1. Create Actor from template: # JavaScript templates apify create my-actor -t js-start # Basic starter apify create my-actor -t js-crawlee-cheerio # Fast HTTP scraping apify create my-actor -t js-crawlee-playwright-chrome # Browser automation apify create my-actor -t js-crawlee-puppeteer-chrome # Puppeteer-based apify create my-actor -t js-langchain # LangChain AI apify create my-actor -t js-langgraph-agent # LangGraph agent # TypeScript templates apify create my-actor -t ts-start # Basic starter apify create my-actor -t ts-crawlee-cheerio # Fast HTTP scraping apify create my-actor -t ts-crawlee-playwright-chrome # Browser automation apify create my-actor -t ts-crawlee-puppeteer-chrome # Puppeteer-based apify create my-actor -t ts-mcp-proxy # MCP server proxy # Python templates apify create my-actor -t python-start # Basic starter apify create my-actor -t python-crawlee-beautifulsoup # BeautifulSoup crawler apify create my-actor -t python-crawlee-playwright # Playwright crawler apify create my-actor -t python-playwright # Playwright scraper apify create my-actor -t python-selenium # Selenium scraper apify create my-actor -t python-scrapy # Scrapy integration apify create my-actor -t python-crewai # CrewAI agents apify create my-actor -t python-langgraph # LangGraph agents apify create my-actor -t python-pydanticai # PydanticAI apify create my-actor -t python-mcp-proxy # MCP server proxy
  2. Project structure created: my-actor/ ├──.actor/ │ ├── actor.json # Actor metadata and configuration │ ├── input_schema.json # Input UI and validation │ ├── dataset_schema.json # Output structure (optional) │ └── pay_per_event.json # PPE monetization config (optional) ├── src/ │ └── main.js # Main entry point (or main.py) ├── README.md # Documentation (becomes Store page) ├── Dockerfile # Build configuration └── package.json # Dependencies (or requirements.txt)

Phase 2: Define Actor Configuration

  1. Configure .actor/actor.json: {"actorSpecification": 1, "name": "my-scraper", "title": "My Web Scraper", "description": "Scrapes data from websites efficiently", "version": "1.0", "buildTag": "latest", "input": "./input_schema.json", "storages": {"dataset": "./dataset_schema.json"}}
  2. Design input schema (.actor/input_schema.json): {"title": "My Scraper Input", "type": "object", "schemaVersion": 1, "description": "Configure the scraper settings. <a href='https://example.com/guide' target='_blank'>See full guide</a>", "properties": {"startUrls": {"title": "Start URLs", "type": "array", "description": "URLs to start scraping from", "editor": "requestListSources", "prefill": [{"url": "https://example.com"}]}, "maxItems": {"title": "Max Items", "type": "integer", "description": "Maximum number of items to scrape (0 = unlimited)", "default": 100, "minimum": 0, "editor": "number"}, "proxyConfig": {"title": "Proxy Configuration", "type": "object", "description": "Select proxies for anti-blocking", "editor": "proxy", "prefill": {"useApifyProxy": true}, "sectionCaption": "Advanced Settings", "sectionDescription": "Configure proxy and performance options"}}, "required": ["startUrls"]} Input schema editor types:

- textfield - Single line text - textarea - Multi-line text - javascript / python - Code with syntax highlighting - number - Numeric input with min/max validation - select - Dropdown (requires enum or enumSuggestedValues) - requestListSources - URL list for Crawlee - proxy - Apify proxy configuration - datepicker - Date selection (absolute/relative) - checkbox - Boolean toggle - json - Raw JSON editor - keyValue - Key-value pairs - stringList - Array of strings - hidden - Hidden field

Phase 3: Implement Actor Logic

  1. JavaScript/TypeScript Actor (src/main.js): ` import {Actor} from 'apify'; import {CheerioCrawler} from 'crawlee'; await Actor.init(); // Get input const {startUrls, maxItems = 100, proxyConfig} = await Actor.getInput(); // Configure proxy const proxyConfiguration = await Actor.createProxyConfiguration(proxyConfig); let itemCount = 0; const crawler = new CheerioCrawler({proxyConfiguration, maxRequestsPerCrawl: maxItems || undefined, async requestHandler({$, request, enqueueLinks}) {// Extract data const title = $('h1').text().trim(); const description = $('meta[name="description"]').attr('content'); // Save to dataset await Actor.pushData({url: request.url, title, description, scrapedAt: new Date().toISOString(),}); itemCount++; if (maxItems && itemCount >= maxItems) return; // Follow links await enqueueLinks({globs: ['https://example.com/**'],});},}); await crawler.run(startUrls); await Actor.exit(Scraped ${itemCount} items); `
  2. Python Actor (src/main.py): import asyncio from apify import Actor async def main(): async with Actor: # Get input actor_input = await Actor.get_input() or {} start_urls = actor_input.get('startUrls', []) max_items = actor_input.get('maxItems', 100) item_count = 0 # Simple example without Crawlee for url_obj in start_urls: url = url_obj.get('url') # Your scraping logic here await Actor.push_data({'url': url, 'status': 'scraped',}) item_count += 1 if max_items and item_count >= max_items: break await Actor.set_status_message(f'Scraped {item_count} items') if __name__ == '__main__': asyncio.run(main())
  3. Python with Crawlee (src/main.py): import asyncio from apify import Actor from crawlee.playwright_crawler import PlaywrightCrawler, PlaywrightCrawlingContext async def main(): async with Actor: actor_input = await Actor.get_input() or {} start_urls = [url['url'] for url in actor_input.get('startUrls', [])] crawler = PlaywrightCrawler(max_requests_per_crawl=actor_input.get('maxItems', 100),) @crawler.router.default_handler async def request_handler(context: PlaywrightCrawlingContext): page = context.page title = await page.title() await Actor.push_data({'url': context.request.url, 'title': title,}) await context.enqueue_links() await crawler.run(start_urls) if __name__ == '__main__': asyncio.run(main())

Phase 4: Local Testing

  1. Test locally: # Run with default input apify run # Run with purged storage (fresh start) apify run --purge # View results cat storage/datasets/default/*.json
  2. Validate input schema: apify validate-schema.actor/input_schema.json

Phase 5: Deploy to Apify Platform

  1. Push to Apify: apify push This uploads code, builds Docker image, and creates/updates the Actor.
  2. Alternative: GitHub integration:

- Connect GitHub repo in Apify Console - Auto-builds on push to main branch - Better for collaboration and version control

Phase 6: Write README Documentation

  1. Create compelling README.md: ``` # My Web Scraper Scrape data from websites efficiently with anti-blocking and proxy support. ## Features - Fast parallel scraping with Crawlee - Automatic proxy rotation - Structured JSON/CSV output - Handles JavaScript-rendered pages ## Input | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | startUrls | array | Yes | URLs to start scraping | | maxItems | integer | No | Max items (default: 100) | ## Output `json {"url": "https://example.com/page", "title": "Page Title", "description": "Meta description", "scrapedAt": "2024-01-15T10:30:00Z"} `` Usage Via Apify Console Via API curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR/runs" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"startUrls": [{"url": "https://example.com"}]}' Integrations Cost Estimation ~$X per 1,000 results using datacenter proxies. `

1. Click "Start" on the Actor page 2. Enter your start URLs 3. Click "Run" - Zapier, Make, n8n support - Webhooks for notifications - Schedule runs via cron

Phase 7: Monetization Setup

  1. Choose pricing model: Option A: Pay-Per-Event (PPE) - Most flexible, recommended Option B: Pay-Per-Result (PPR) Option C: Rental

- Charge for custom events (pages scraped, API calls, etc.) - You earn 80% revenue minus platform costs - AI/MCP compatible, priority store placement - Charge per dataset item produced - Simpler to implement - You earn 80% revenue minus platform costs - Monthly subscription fee - Users pay their own platform costs - You earn 80% of rental fee

  1. Implement PPE charging (.actor/pay_per_event.json): {"schemaVersion": 1, "events": [{"name": "apify-actor-start", "priceUsd": 0.00005, "description": "Actor initialization"}, {"name": "page-scraped", "priceUsd": 0.002, "description": "Per page scraped"}, {"name": "result-saved", "priceUsd": 0.001, "description": "Per result saved to dataset"}]}
  2. Charge events in code: // JavaScript - Option 1: Charge with pushData await Actor.pushData({title, url}, 'result-saved'); // JavaScript - Option 2: Charge separately await Actor.charge({eventName: 'page-scraped', count: 1}); # Python await Actor.push_data({'title': title, 'url': url}, 'result-saved') await Actor.charge(event_name='page-scraped', count=1)
  3. Configure in Apify Console:

- Go to Actor -> Publication -> Monetization - Set up billing details for payouts - Choose pricing model via wizard - Set event prices

Phase 8: Publish to Store

  1. Publication checklist:

- Comprehensive README with examples - Well-designed input schema with prefills - Clear title and description - Actor icon/image - Category selection - Test runs successful - Monetization configured

  1. SEO optimization:

- Use keywords in title and description - Add "use cases" section - Include integration examples - Mention specific websites/platforms supported

Apify SDK Reference

Core Methods

// Initialize/Exit
await Actor.init();
await Actor.exit('Success message');
await Actor.fail('Error message');

// Input/Output
const input = await Actor.getInput();
await Actor.pushData({ key: 'value' });
await Actor.setValue('key', 'value');  // Key-value store
const value = await Actor.getValue('key');

// Storage
const dataset = await Actor.openDataset('name');
const kvStore = await Actor.openKeyValueStore('name');
const requestQueue = await Actor.openRequestQueue('name');

// Platform features
const proxyConfig = await Actor.createProxyConfiguration(input.proxy);
await Actor.setStatusMessage('Processing...');

// PPE charging
await Actor.charge({ eventName: 'my-event', count: 1 });

Crawlee Crawler Types

CrawlerUse CaseSpeedJS Rendering
CheerioCrawlerStatic HTMLFastestNo
PlaywrightCrawlerDynamic pagesMediumYes
PuppeteerCrawlerDynamic pagesMediumYes
HttpCrawlerAPI callsFastestNo
JSDOMCrawlerLight DOM parsingFastPartial

All Available Templates

JavaScript

  • js-start - Basic starter
  • js-crawlee-cheerio - Cheerio crawler
  • js-crawlee-playwright-chrome - Playwright browser
  • js-crawlee-puppeteer-chrome - Puppeteer browser
  • js-crawlee-playwright-camoufox - Camoufox (anti-detect)
  • js-langchain - LangChain integration
  • js-langgraph-agent - LangGraph agent
  • js-standby - HTTP server (Standby mode)
  • js-empty - Empty project

TypeScript

  • ts-start - Basic starter
  • ts-crawlee-cheerio - Cheerio crawler
  • ts-crawlee-playwright-chrome - Playwright browser
  • ts-crawlee-puppeteer-chrome - Puppeteer browser
  • ts-mcp-proxy - MCP server proxy
  • ts-mcp-empty - Empty MCP server
  • ts-standby - HTTP server
  • ts-empty - Empty project

Python

  • python-start - Basic starter
  • python-crawlee-beautifulsoup - BeautifulSoup crawler
  • python-crawlee-playwright - Playwright crawler
  • python-crawlee-parsel - Parsel crawler
  • python-playwright - Playwright scraper
  • python-selenium - Selenium scraper
  • python-scrapy - Scrapy integration
  • python-crewai - CrewAI agents
  • python-langgraph - LangGraph agents
  • python-pydanticai - PydanticAI
  • python-mcp-proxy - MCP server proxy
  • python-standby - HTTP server
  • python-empty - Empty project

Pricing Strategy Tips

  1. Research competitors - Check similar Actors in Store
  2. Calculate costs - Run tests, check Analytics tab
  3. Start competitive - Most prices: $1-10 per 1,000 results
  4. Use PPE for flexibility - Charge for what users actually use
  5. Offer free tier - Low maxItems for testing

Maintenance Commitment

Reserve ~2 hours/week for:

  • Bug fixes and user support
  • Keeping up with website changes
  • Responding to Issues tab
  • Improving documentation

Examples

Example 1: Simple Product Scraper

import { Actor } from 'apify';
import { CheerioCrawler } from 'crawlee';

await Actor.init();
const { startUrls } = await Actor.getInput();

const crawler = new CheerioCrawler({
  async requestHandler({ $, request }) {
    const products = [];
    $('.product').each((_, el) => {
      products.push({
        name: $(el).find('.name').text(),
        price: $(el).find('.price').text(),
        url: request.url,
      });
    });
    await Actor.pushData(products);
  },
});

await crawler.run(startUrls);
await Actor.exit();

Example 2: AI Agent Actor (Python with CrewAI)

import asyncio
from apify import Actor
from crewai import Agent, Task, Crew

async def main():
    async with Actor:
        input_data = await Actor.get_input()
        query = input_data.get('query')

        researcher = Agent(
            role='Researcher',
            goal='Find accurate information',
            backstory='Expert researcher',
        )

        task = Task(
            description=query,
            agent=researcher,
        )

        crew = Crew(agents=[researcher], tasks=[task])
        result = crew.kickoff()

        await Actor.push_data({'query': query, 'result': str(result)})

if __name__ == '__main__':
    asyncio.run(main())

Resources

平台分布

Codex

39.59%
按下载量换算32

Claude

29.55%
按下载量换算24

Cursor

19.2%
按下载量换算16

Gemini CLI

8.82%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills