Команды по доступу на рынок (market-access) и аналитики плательщиков (payer analytics) живут в мире, где данные определяют стратегию. Цены на препараты варьируются по штатам, клинические испытания появляются ежедневно, а каталоги поставщиков устаревают каждую неделю. Но собрать эти данные — нетривиальная задача: GoodRx блокирует ботов, порталы прозрачности цен штатов используют агрессивные антибот-системы, а грань между «публичными данными» и «охраняемой медицинской информацией» (PHI) требует постоянного внимания.
Это руководство — практический комплаенс-ориентированный справочник по скрейпингу публичных данных здравоохранения. Мы строго ограничиваемся общедоступными источниками: цены на препараты, открытые базы FDA, реестры клинических испытаний, публичные каталоги поставщиков. Никаких данных пациентов. Никакого PHI. Никаких нарушений HIPAA.
Публичные источники данных здравоохранения: что можно собирать
Ключевой принцип: если данные находятся в открытом доступе без авторизации — они, как правило, допустимы для сбора. Но «открытый доступ» не означает «без ограничений»: всегда проверяйте robots.txt, условия использования и применимые законы штата.
GoodRx — агрегатор цен на препараты
GoodRx публикует цены на рецептурные препараты в аптеках по всей территории США. Данные публичны, но сайт использует агрессивную антибот-защиту: Cloudflare, rate limiting, JavaScript-челленджи. Для стабильного сбора нужны резидентные прокси с ротацией IP и корректными заголовками User-Agent.
FDA Drug Databases
Управление по санитарному надзору США (FDA) предоставляет несколько открытых баз данных: Drugs@FDA, DailyMed (информация о маркировке), Orange Book (терапевтическая эквивалентность). Доступ через API и веб-скрейпинг, как правило, свободный, но соблюдайте разумный rate limiting.
ClinicalTrials.gov
Национальная медицинская библиотека США (NLM) ведёт реестр клинических испытаний NIH. Данные публичны, доступны через API v2 и веб-интерфейс. Идеальный источник для мониторинга ландшафта клинических испытаний.
CMS Open Data
Центры услуг Medicare и Medicaid (CMS) публикуют данные о возмещении расходов: CMS Data Portal, данные Part D, данные по больницам. Большинство наборов данных доступны через API с ключом — скрейпинг обычно не требуется, но может понадобиться для устаревших интерфейсов.
NPPES NPI Registry
Национальный реестр идентификаторов поставщиков медицинских услуг (NPPES) — публичный каталог врачей и организаций с NPI-номерами. Доступен через NPPES API. Ключевой ресурс для валидации каталогов поставщиков.
Почему для сбора данных здравоохранения нужны резидентные прокси
Не все публичные источники дружелюбны к автоматизированному сбору. Вот реальная ситуация:
- GoodRx — Cloudflare Turnstile, rate limiting по IP, блокировка дата-центерных диапазонов. Без резидентных прокси成功率 запросов падает ниже 15%.
- Порталы прозрачности цен штатов — некоторые штаты (например, Colorado, Texas) используют WAF, который блокирует подозрительные IP. Резидентные IP из того же штата обходят это органично.
- Аптечные агрегаторы — аналогично GoodRx: защита от парсинга цен конкурентами.
Дата-центерные прокси быстрее и дешевле, но они легко детектируются. Мобильные прокси — лучший вариант для максимальной имитации реального трафика, но они дороже. Для большинства задач фармацевтического интеллекта резидентные прокси — оптимальный баланс между стоимостью и успешностью.
| Тип прокси | Скорость | Успешность (GoodRx) | Стоимость | Рекомендация |
|---|---|---|---|---|
| Дата-центерные | Высокая | 10–20% | Низкая | Только для API без защиты |
| Резидентные | Средняя | 85–95% | Средняя | Основной выбор для фармы |
| Мобильные | Средняя | 95–99% | Высокая | Для самых защищённых сайтов |
Геотаргетинг: цены на препараты зависят от локации
Одна из главных причин использовать прокси для данных здравоохранения — географическая вариативность цен. Цена на тот же препарат в Walgreens в Нью-Йорке и в сельской аптеке Техаса может отличаться на 20–40%.
Для точного бенчмаркинга необходимо:
- Собирать цены из нескольких штатов одновременно.
- Использовать IP-адреса, соответствующие целевому штату или даже городу.
- Имитировать локальных пользователей, чтобы обойти гео-блокировки.
С ProxyHat геотаргетинг настраивается через имя пользователя:
# Цена на препарат в аптеках Калифорнии
curl -x http://user-country-US-state-CA:PASSWORD@gate.proxyhat.com:8080 \
"https://www.goodrx.com/api/v1/search?drug=ozempic"
# Та же проверка для Нью-Йорка
curl -x http://user-country-US-state-NY:PASSWORD@gate.proxyhat.com:8080 \
"https://www.goodrx.com/api/v1/search?drug=ozempic"Такой подход позволяет собирать панельные данные по ценам — одну и ту же информацию из разных регионов, создавая полную картину ценового ландшафта.
Архитектура: от скрейпинга до аналитического хранилища
Сбор данных — лишь первый шаг. Для фармацевтического интеллекта нужна полноценная ETL-цепочка.
Уровень 1: Сбор (Ingestion)
- Скрейперы — Python (Scrapy, Playwright) или Node.js (Puppeteer) для JS-рендеринга.
- API-клиенты — для FDA, ClinicalTrials.gov, NPPES (предпочтительнее скрейпинга).
- Прокси-менеджер — ротация IP через резидентные прокси с геотаргетингом.
- Очередь задач — Redis/Celery или SQS для управления частотой запросов.
Уровень 2: Нормализация
Данные из разных источников имеют разную структуру. Нормализация включает:
- Стандартизацию названий препаратов (RxNorm, NDC-коды).
- Унификацию форм дозировки и упаковок.
- Приведение цен к единому формату (USD, за единицу дозы).
- Дедупликацию записей из разных источников.
Уровень 3: ETL в хранилище данных
- Хранилище — Snowflake, BigQuery или Redshift для аналитических запросов.
- Расписание — ежедневное обновление цен, еженедельное — для клинических испытаний.
- Мониторинг качества — алерты при аномальном падении успеха скрейпинга или резком изменении цен.
Пример конвейера на Python:
import requests
from datetime import datetime
PROXY = "http://user-country-US:PASSWORD@gate.proxyhat.com:8080"
proxies = {"http": PROXY, "https": PROXY}
def fetch_goodrx_price(drug_name: str, state: str = "CA") -> dict:
"""Собирает цену на препарат через резидентный прокси."""
state_proxy = (
f"http://user-country-US-state-{state}:PASSWORD"
f"@gate.proxyhat.com:8080"
)
state_proxies = {"http": state_proxy, "https": state_proxy}
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 Chrome/125.0.0.0 Safari/537.36"
)
}
# Пример: реальный эндпоинт может отличаться
url = f"https://www.goodrx.com/{drug_name}"
resp = requests.get(url, proxies=state_proxies, headers=headers, timeout=30)
resp.raise_for_status()
return {
"drug": drug_name,
"state": state,
"fetched_at": datetime.utcnow().isoformat(),
"status": resp.status_code,
}
# Сбор по нескольким штатам
for state in ["CA", "NY", "TX", "FL", "OH"]:
result = fetch_goodrx_price("ozempic", state)
print(result)Комплаенс: границы HIPAA и публичные данные
Это самый важный раздел. Нарушение HIPAA — это не просто «плохая практика», это федеральное преступление с штрафами до $1.9 млн за нарушение категории 4.
Что HIPAA защищает
HIPAA (Health Insurance Portability and Accountability Act) защищает индивидуально идентифицируемую информацию о здоровье (PHI) — данные, которые связывают человека с его медицинской информацией. PHI включает:
- Имена пациентов, даты рождения, SSN.
- Диагнозы, привязанные к конкретному лицу.
- Медицинские записи, номера счетов.
- Любые данные, по которым можно идентифицировать пациента.
Что HIPAA НЕ защищает (и что мы собираем)
- Агрегированные цены на препараты — цена на Ozempic в аптеке CVS — это не PHI.
- Публичные каталоги поставщиков — NPI-номера, специальности, адреса практик — это общедоступная информация.
- Данные клинических испытаний — условия, стадии, спонсоры — всё это публично на ClinicalTrials.gov.
- Данные FDA — одобрения препаратов, маркировка, отчёты о побочных эффектах (без идентификации пациентов).
Золотое правило: если данные не связаны с конкретным пациентом и доступны без авторизации — они, как правило, не являются PHI. Но всегда консультируйтесь с юрисконсультом перед началом нового проекта по сбору данных.
Практические ограничения комплаенса
- Не скрейпите порталы пациентов — patient portals, EHR-системы, страховые аккаунты. Даже если технически возможно — это PHI.
- Не собирайте отзывы пациентов с идентифицируемой информацией — даже публичные отзывы могут содержать PHI, если пациент описывает свой диагноз с именем.
- Соблюдайте robots.txt — технически не юридическое требование, но демонстрирует добросовестность.
- Учитывайте законы штатов — некоторые штаты (California — CMIA, New York — SHIELD Act) имеют дополнительные законы о данных здравоохранения, выходящие за рамки HIPAA.
- Ведите аудит — документируйте, какие данные вы собираете, откуда и почему они считаются публичными.
Регулирования штатов, о которых нужно знать
| Штат | Закон | Что регулирует | Влияние на скрейпинг |
|---|---|---|---|
| California | CMIA | Медицинская информация сверх HIPAA | Не собирать медицинские данные без согласия |
| New York | SHIELD Act | Широкая защита персональных данных | Осторожность с любыми PI-данными |
| Texas | Texas HB 300 | Расширенная защита PHI | Строгие требования к электронным данным |
| Massachusetts | 201 CMR 17 | Стандарты защиты данных | Требования к шифрованию при хранении |
Сценарии использования фармацевтического интеллекта
1. Бенчмаркинг цен для доступа на рынок
Команды market-access анализируют цены на препараты по регионам, чтобы:
- Определить оптимальную цену для нового препарата.
- Сравнить цены конкурентов в реальном времени.
- Отслеживать скидки и купоны (GoodRx, SingleCare).
- Подготовить данные для переговоров с плательщиками (payers).
С резидентными прокси и геотаргетингом вы можете собрать панель цен по 50 штатам и обновлять её ежедневно, получая наиболее полную картину ценообразования.
2. Мониторинг ландшафта клинических испытаний
Команды по стратегии и R&D отслеживают:
- Новые испытания в терапевтической области.
- Статус конкурентных испытаний (набор, приостановка, завершение).
- Смену спонсоров и партнёрств.
- Результаты испытаний, влияющие на позиционирование продукта.
API ClinicalTrials.gov — предпочтительный метод, но для расширенных фильтров и исторических данных может потребоваться скрейпинг.
3. Валидация каталогов поставщиков
Плательщики и фармацевтические компании используют NPPES NPI для:
- Верификации актуальности каталогов поставщиков в сети.
- Обнаружения несоответствий (закрытые практики, изменённые специальности).
- Анализа покрытия сети по географии и специальности.
NPPES API — лучший способ, но при массовых запросах (>1000/мин) может потребоваться распределение через прокси.
Стратегии ротации IP для данных здравоохранения
Разные источники требуют разных стратегий:
- GoodRx и аптечные агрегаторы — ротация IP на каждый запрос (per-request rotation). Sticky-сессии не нужны, так как каждый запрос — отдельная страница препарата.
- Порталы штатов — sticky-сессии (5–15 минут) для прохождения многошаговых форм и сессий.
- API (FDA, ClinicalTrials.gov, NPPES) — можно использовать дата-центерные прокси с rate limiting, так как API обычно не блокируют по IP при соблюдении лимитов.
С ProxyHat управление сессиями настраивается через имя пользователя:
# Ротация IP на каждый запрос (по умолчанию)
http://user-country-US:PASSWORD@gate.proxyhat.com:8080
# Sticky-сессия для многошагового скрейпинга
http://user-session-portal-tx-abc123:PASSWORD@gate.proxyhat.com:8080Мониторинг качества и алертинг
При сборе данных здравоохранения стабильность критична. Рекомендуем отслеживать:
- Success rate — доля успешных ответов (цель: >90% для резидентных прокси).
- Latency — время ответа (ожидаемо выше для резидентных прокси: 2–5 секунд).
- Блокировки — рост 403/429 кодов указывает на детекцию.
- Аномалии цен — резкое изменение (>50%) может указывать на ошибку скрейпинга, а не на реальное изменение цены.
Настройте автоматические алерты: если success rate падает ниже 80% — пора менять стратегию ротации или поставщика прокси.
Ключевые выводы
Key Takeaways:
- Строго ограничивайтесь публичными данными — цены на препараты, FDA, ClinicalTrials.gov, NPPES. Никаких данных пациентов, никакого PHI.
- Резидентные прокси необходимы для GoodRx и порталов штатов — дата-центерные IP блокируются агрессивными антибот-системами.
- Геотаргетинг критичен — цены на препараты варьируются по штатам; собирайте данные с IP целевых регионов.
- Стройте полноценную ETL-цепочку — скрейпинг → нормализация (RxNorm, NDC) → хранилище данных → аналитика.
- HIPAA — красная линия: если данные идентифицируют пациента — не собирайте их. Консультируйтесь с юрисконсультом.
- Учитывайте законы штатов — CMIA, SHIELD Act и другие могут расширять защиту данных сверх HIPAA.
Заключение и следующие шаги
Сбор публичных данных здравоохранения — мощный инструмент для фармацевтического интеллекта, если он выполняется ответственно. Начните с чёткого определения области данных (public only), выберите правильный тип прокси для каждого источника и постройте надёжную ETL-архитектуру с мониторингом качества.
Если вы готовы начать сбор данных о ценах на препараты с резидентными прокси и геотаргетингом — ознакомьтесь с тарифами ProxyHat или проверьте доступные локации для вашего региона. Для более широкого контекста по скрейпингу см. наше руководство по резидентным прокси.






