HasData Agent Skills — скрейпинг и SERP API
HasData Agent Skills
Два скилла HasData учат агента вызывать API выдачи Google, Amazon, Zillow, Maps и других площадок без угадывания эндпоинтов
- 14 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Запросы уходят во внешний сервис и расходуют квоту аккаунта, ключ API лежит в переменной окружения
- Скрейпинг чужих сайтов может нарушать их правила и закон о персональных данных, если собирать контакты людей
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/hasdata-agent-skillsОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Запросы уходят во внешний сервис и расходуют квоту аккаунта, ключ API лежит в переменной окружения
- Скрейпинг чужих сайтов может нарушать их правила и закон о персональных данных, если собирать контакты людей
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
HasData — облачная платформа для сбора публичных веб-данных: выдача поисковиков, готовые парсеры площадок и асинхронные задачи. Репозиторий содержит два скилла, которые подсказывают агенту нужные адреса, параметры и формы ответов. Скилл hasdata встраивает вызовы API в код на Python, TypeScript и Go. Он описывает `POST /scrape/web`, парсеры Google (выдача, режим ИИ, карты, новости, тренды), Bing, Amazon, Shopify, Zillow, Redfin, Airbnb, Booking, Yelp, Indeed, Glassdoor, Instagram и YouTube, а также цикл асинхронных задач: отправка, опрос, получение результата и вебхуки. В папке references лежат примеры кода с повторами и паузами между попытками. Скилл hasdata-cli работает через консольную утилиту hasdata. Команды вида `hasdata <подкоманда> --флаг значение` дают разовые запросы, их результат передают в jq, скрипты и CI. Правило выбора в SKILL.md: для известной площадки брать готовый парсер, для произвольного адреса обычный скрейпинг, а асинхронные задачи оставлять для массовых выгрузок.
Для кого. Разработчикам, которые строят сервис на данных поисковой выдачи, маркетплейсов и карт, и аналитикам, которым нужны быстрые выгрузки из терминала.
Подходит, если
- Сервису нужна выдача Google по запросу, и код должен получать ее готовым JSON
- Список кафе с сайтами и телефонами собирают с Google Maps для базы лидов
- Цены и отзывы с Amazon или Shopify выгружают в таблицу для анализа конкурентов
- Документацию большого сайта обходят асинхронным краулером и получают Markdown для корпуса документов
- В bash-скрипте требуется разовый запрос к API без написания клиента
Не подходит, если
- Данные закрыты логином или принадлежат вашему аккаунту: платформа рассчитана на публичные страницы
- Бюджет нулевой: каждый запрос тратит квоту аккаунта HasData
- Нужен MCP-сервер: в репозитории только скиллы и подсказки по API
Пример запроса к агенту
Достань через HasData первые десять результатов Google по запросу «купить кофемашину» и сохрани заголовки со ссылками в CSV.Ограничения
Нужны аккаунт на app.hasdata.com и ключ API в переменной HASDATA_API_KEY. Запросы расходуют квоту: код 403 означает, что она исчерпана, 429 — упор в лимит параллельных запросов.
Скилл hasdata-cli работает только с установленной и настроенной командой hasdata. Скиллы подсказывают агенту схему API, но данные добывает внешний сервис, и соблюдение правил сайтов-источников остается на пользователе. Общая команда npx skills add ставит оба скилла сразу.
Как отключить. Удалите папки hasdata и hasdata-cli из каталога скиллов агента. Для плагина Claude Code уберите его командой /plugin, а ключ API отзовите в кабинете HasData.
Частые вопросы
Чем hasdata отличается от hasdata-cli?
hasdata встраивает вызовы API в приложение на Python, TypeScript или Go. hasdata-cli нужен для разовых запросов из терминала через утилиту hasdata, с выводом в jq и скрипты. Если собираете сервис, берите первый, если пишете bash, второй.
Как поставить скиллы в Claude Code?
Командами /plugin marketplace add https://github.com/HasData/agent-skills, затем /plugin install hasdata@hasdata-agent-skills и /plugin install hasdata-cli@hasdata-agent-skills. Достаточно одной из двух последних, если нужен только один скилл.
Какой ответ считать успешным?
Данные верны, только когда requestMetadata.status равен ok. Код 200 сам по себе ничего не гарантирует. Ошибки: 401 неверный ключ, 403 квота кончилась, 429 слишком много параллельных запросов, 500 повторите позже.
Подходит ли набор для Cursor и Codex?
Да, подходят Claude Code, Cursor, Codex, Gemini CLI и любые инструменты, читающие SKILL.md. Для Cursor и Windsurf файлы скиллов клонируют в проект или в общий каталог и указывают агенту папку skills.
Где взять ключ API HasData?
В кабинете на app.hasdata.com, раздел Dashboard, затем API. Ключ кладут в переменную HASDATA_API_KEY, для скилла hasdata-cli утилиту hasdata настраивают командой hasdata configure.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл для сбора данных о компаниях из Google Maps: агент планирует запросы, запускает локальный сборщик и помогает с результатами
Официальные скиллы Exa подключают агента к API Exa: поиск, извлечение страниц, исследование компаний и списки лидов
Скилл веб-поиска без MCP-сервера: четыре клиента командной строки ищут по сети и 16 тематическим областям, пакетно и с извлечением страниц
Официальный плагин Bright Data: 21 скилл для поиска в Google, скрейпинга страниц, готовых парсеров, прокси и MCP-сервера Bright Data
Web Access
web-access
Скилл выхода в сеть: сам выбирает между поиском, загрузкой страницы и управлением вашим браузером через CDP
Набор из трех скиллов и четырех утилит: агент ищет в сети, читает страницы, берет субтитры видео и обрабатывает медиа
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| HasData Agent Skills — скрейпинг и SERP API (эта карточка) | да | 14 | ||
| Bright Data Skills | да | 271 | скиллы вокруг Web Unlocker, прокси и парсеров Bright Data, а здесь API HasData | |
| Apify Agent Skills | нет | 2 497 | скиллы для платформы акторов Apify, а здесь готовые парсеры и задачи HasData | |
| SerpApi MCP Server | да | API-ключ | 184 | MCP-сервер только для поисковой выдачи, а здесь еще парсеры площадок и краулер |
Коротко о README
Каждый SKILL.md самодостаточен, а подробности лежат в папках references: веб-скрейпинг, выдача, e-commerce, недвижимость, путешествия, локальный бизнес, вакансии, YouTube и асинхронные задачи. Для Codex и Gemini CLI README советует читать файлы SKILL.md напрямую. Нужны аккаунт HasData и ключ API.
Бейдж для README
Исходный SKILL.md
---
name: hasdata
description: Use HasData to scrape any public web page, run real-time Google/Bing/Google-AI-Mode search queries, pull structured data from e-commerce, real-estate, lodging, jobs, maps, travel, video, and social platforms, or run async bulk-scraping and crawling jobs without managing proxies, browsers, or captchas. Reach for this skill when the user mentions web scraping, SERP/search results, Google Maps/Trends/Flights/Images, YouTube videos/transcripts/channels, Amazon, Zillow, Redfin, Airbnb, Booking.com hotels, Yelp, Indeed, Glassdoor, Instagram, Shopify, scraper jobs, website crawling, RAG/LLM data ingestion, lead/contact enrichment, or HasData itself.
---
# HasData
Cloud platform for extracting public web data. One API key, three execution modes. All endpoints sit under `https://api.hasdata.com` and authenticate with `x-api-key`.
```bash
curl -G 'https://api.hasdata.com/scrape/google/serp' \
--data-urlencode 'q=coffee' \
-H 'x-api-key: <your-api-key>'
```
`401` invalid key, `403` quota exhausted, `429` concurrency cap, `500` server error (retry).
## Three execution modes
| Mode | Latency | When | Endpoint |
|---|---|---|---|
| **Web Scraping API** | seconds | Arbitrary URL — JS rendering, CSS/AI extraction, screenshots | `POST /scrape/web` |
| **Scraper APIs** (sync) | seconds | Pre-parsed JSON for known platforms (Google, Amazon, Zillow, …) | `GET /scrape/<vertical>/<resource>` |
| **Scraper Jobs** (async) | minutes–hours | Bulk extraction, recursive crawling, webhook fan-out | `POST /scrapers/<slug>/jobs` |
**Decision rule.** Default to a **Scraper API** when one exists for the platform (pre-parsed JSON, no selector maintenance). Use **Web Scraping** for arbitrary URLs not covered by an API. Reach for a **Scraper Job** only when no API equivalent exists — `crawler`, `contacts`, `sec-edgar`, `amazon-bestsellers`, `amazon-product-reviews` — *or* when async fan-out + webhooks save engineering time over a paginated client loop.
## Always-true response shape
```json
{ "requestMetadata": { "id": "…", "status": "ok", "url": "…" }, "...": "endpoint-specific" }
```
Treat data as valid only if `requestMetadata.status === "ok"`. HTTP 200 alone isn't enough.
## High-leverage patterns
- **SERP-first enrichment.** Google SERP is a free-form data lake. `q="<Person> <Company> linkedin"` → `organicResults[0].title` + `.snippet` already carries role + location, no profile-page scrape needed. Same recipe with `crunchbase`, `wikipedia`, `github`, or quoted literals (`"jane@x.com"`, `"+1 555 …"`) for reverse lookup.
- **AI Mode + verify.** `/scrape/google/ai-mode` for the answer + references → `/scrape/web` (markdown) on each reference URL → cited RAG context, no vector DB.
- **Maps → leads.** `/scrape/google-maps/search` returns websites + phones; fan out to `/scrape/web` with `extractEmails: true` for full lead rows.
- **Crawler → corpus.** `crawler` Scraper Job with `outputFormat: ["markdown"]` + `includePaths: "/docs/.+"` produces an LLM-ready corpus in one submission.
- **Pre-extracted via SERP rich snippets.** `knowledgeGraph`, `localResults`, `inlineShoppingResults`, `relatedQuestions` carry pre-parsed facts that bypass anti-bot. Always check them before scraping.
## When to call from code (the wiring)