scraping-twitter-profiles — скилл для Claude Code: как установить
Выгружает метаданные профилей Twitter/X через платформу Apify. Помогает собирать статистику подписчиков, биографии и статусы верификации списком.
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a claude-codeЧто делает scraping-twitter-profiles
Скилл автоматизирует сбор открытых данных об аккаунтах Twitter/X через актор apidojo/twitter-user-scraper на Apify. Агент нормализует список перед запуском. Он убирает символы @ и исключает дубликаты. В результат попадают число подписчиков, биография и отметка верификации.
Запустить актор можно через Apify MCP или локальный скрипт scripts/run_actor.js. Результаты экспортируются в форматы CSV или JSON. Если список превышает 1000 аккаунтов, сервис требует делить его на пачки по 500 записей. Без заданной переменной APIFY_TOKEN в окружении или файле .env запустить сбор не получится.
Закрытые профили возвращают метаданные с пометкой isPrivate: true без твитов. Удалённые или заблокированные аккаунты исключаются из финальной таблицы.
Какие задачи решает
- Выгрузить биографии и статистику фолловеров по списку аккаунтов Twitter
- Экспортировать метаданные профилей в файлы CSV или JSON через Apify
- Найти верифицированные страницы и проверить дату их создания
- Нормализовать перечень хэндлов с очисткой от дублей и знаков @
Примеры запросов агенту
- Собери данные профилей для списка
elonmuskиsamaчерез Apify и сохрани в CSV - Выгрузи количество подписчиков и описания для аккаунтов из файла
handles.txt - Проверь статус верификации и дату регистрации для списка пользователей Twitter
Как установить scraping-twitter-profiles
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a claude-code2Вручную: положить файлы
~/.claude/skills/scraping-twitter-profiles/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/scraping-twitter-profiles/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a codex2Вручную: положить файлы
.agents/skills/scraping-twitter-profiles/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a cursor2Вручную: положить файлы
.cursor/skills/scraping-twitter-profiles/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills scraping-twitter-profiles2Вручную: положить файлы
.github/skills/scraping-twitter-profiles/SKILL.md1Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a gemini-cli2Командой платформы
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/primitives/scraping-twitter-profilesВручную: положить файлы
.devin/skills/scraping-twitter-profiles/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о scraping-twitter-profiles
Как установить scraping-twitter-profiles в Claude Code?
Выполните команду npx skills add apidojo-io/apidojo-skills --skill scraping-twitter-profiles -a claude-code. Файл навыка запишется по пути ~/.claude/skills/scraping-twitter-profiles/SKILL.md.
Что делает скилл scraping-twitter-profiles?
Он запускает актор Apify apidojo/twitter-user-scraper для массового сбора данных профилей Twitter/X. Навык возвращает счётчики подписчиков, биографии, отметку синей галочки и дату создания аккаунта.
Что нужно подготовить перед запуском сбора?
Нужно задать токен в переменной окружения APIFY_TOKEN или в файле .env. Если список содержит свыше 1000 аккаунтов, разбейте его на пачки по 500 записей.
Исходный текст
SKILL.md · Apache-2.0
---
name: scraping-twitter-profiles
description: >
Scrapes Twitter/X profile data for any list of usernames using apidojo's Twitter User
scraper on Apify. Triggers when the user asks to: get profile data for Twitter accounts,
fetch follower counts for a list of usernames, scrape Twitter bio and stats for multiple
users, export Twitter profile metadata, check account details for a set of handles,
or bulk-fetch Twitter user information. Returns username, display name, bio, follower
count, following count, tweet count, verified status, and profile URL.
Ideal for data analysts, list enrichment pipelines, and market researchers.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/twitter-user-scraper
---
# Scraping Twitter Profiles
Bulk profile data export for any set of Twitter/X usernames. Returns account-level metadata: follower counts, bios, join dates, verification status.
## Prerequisites
- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed
## Inputs
| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | Twitter profile or tweet URLs |
| `twitterHandles` | array | Optional | `[]` | Twitter usernames (without @) |
| `twitterUserIds` | array | Optional | `[]` | Twitter user IDs |
| `getFollowers` | boolean | Optional | `false` | Extract follower lists |
| `getFollowing` | boolean | Optional | `false` | Extract following lists |
| `getRetweeters` | boolean | Optional | `false` | Extract retweeters of a tweet URL |
| `includeUnavailableUsers` | boolean | Optional | `false` | Include unavailable/suspended users |
| `maxItems` | number | Optional | Unlimited | Maximum users to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow
```
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run twitter-user-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset
```
### Step 1: Normalize
Remove `@` symbols, deduplicate, validate no empty strings.
### Step 2: Run the Actor
**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~twitter-user-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input:
{
"usernames": ["handle1", "handle2", "handle3"]
}
```
**REST API fallback:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~twitter-user-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["handle1", "handle2"]}'
```
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```
Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```
### Step 3: Handle Edge Cases
- **Missing accounts in results**: Account suspended, deleted, or handle changed. Note missing handles in output.
- **Private accounts**: Returns profile metadata but no tweet content — flag `isPrivate: true` rows.
- **Deactivated accounts**: Returns null or empty object — exclude from final dataset.
## Output Format
```
# Twitter Profile Dataset
Accounts requested: N | Accounts returned: N | Missing: N
| Username | Display Name | Followers | Following | Tweets | Verified | Bio (truncated) | Joined |
|----------|-------------|-----------|-----------|--------|----------|-----------------|--------|
| ... | ... | ... | ... | ... | ... | ... | ... |
Available fields: username, displayName, followersCount, followingCount, tweetCount,
isVerified, isBlueVerified, description, location, url, profileImageUrl, createdAt, isPrivate
```
## Troubleshooting
**Some handles missing from results:** Accounts may be suspended or renamed — cross-reference manually.
**Large lists (> 1000):** Break into batches of 500 and run sequentially.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills