Python SDK
Descripción general
El SDK oficial de Python de Scrapeless proporciona acceso a automatización de navegadores, extracción, rastreo, proxies, resultados de búsqueda y extracción de chat con IA. Esta guía sigue el README del repositorio del SDK, con ejemplos ejecutables y detalles de configuración.
Requisitos
Se declara Python 3.8 o posterior en los metadatos del paquete. Las integraciones de navegadores pueden requerir una versión más reciente de Python dependiendo de la versión de Playwright o Pyppeteer instalada.
Utilice un entorno virtual para mantener las dependencias del SDK separadas de otros proyectos.
Instalación
pip install scrapelessEl repositorio utiliza python-dotenv para cargar variables de entorno, pero sus metadatos actuales del paquete no incluyen esa dependencia. Instálelo junto con el SDK si es necesario:
pip install python-dotenvInstale pyppeteer o playwright por separado al usar la integración de navegador correspondiente.
Autenticación / Clave de API
Inicie sesión en el panel de control de Scrapeless y cree una clave de API. Exporte dicha clave antes de ejecutar los ejemplos:
export SCRAPELESS_API_KEY="YOUR_API_KEY"Mantenga su clave de API en su entorno o gestor de secretos en lugar de incluirla en el control de versiones.
Scrapeless() lee SCRAPELESS_API_KEY. También puede pasar una entrada api_key en el diccionario de configuración del cliente.
Inicio rápido
Guarde esto como quickstart.py y ejecute python quickstart.py después de establecer su clave de API.
from scrapeless import Scrapeless
from scrapeless.types import UniversalScrapingRequest
client = Scrapeless()
result = client.universal.scrape(UniversalScrapingRequest(
actor='unlocker.webunlocker',
input={'url': 'https://example.com', 'method': 'GET', 'redirect': False}
))
print(result)Matriz de cobertura de productos
| Producto | Servicio del SDK | Cobertura |
|---|---|---|
| Agent Browser | client.browser | Cree y gestione sesiones de navegador remoto. |
| Perfiles de navegador | client.profiles | Mantenga los datos del navegador entre sesiones. |
| Scraping API | client.scraping | Extraiga datos estructurados utilizando Actor de sitios web. |
| Web Unlocker | client.universal | Recupere contenido de sitios web protegidos. |
| Crawl | client.scraping_crawl | Extraiga una página o rastree un sitio web. |
| Google Search API | client.deepserp | Extraiga resultados de motores de búsqueda. |
| Proxies | client.proxies | Genere URLs de conexión de proxy. |
| AI Scraper | client.ai_scraper | Cree tareas de chat de IA y recupere su estado y resultados. |
Ejemplos de uso
Navegador
Instale la integración del navegador con pip install pyppeteer.
Gestión avanzada de sesiones de navegador que admite los frameworks Playwright y Pyppeteer, con capacidades anti-detección configurables (por ejemplo, suplantación de huella digital, resolución de CAPTCHA) y flujos de trabajo de automatización extensibles:
from scrapeless import Scrapeless
from scrapeless.types import ICreateBrowser
import asyncio
import pyppeteer
client = Scrapeless()
async def example():
# Create a browser session
config = ICreateBrowser(
session_name='sdk_test',
session_ttl=180,
proxy_country='US',
session_recording=True
)
session = client.browser.create(config).__dict__
browser_ws_endpoint = session['browser_ws_endpoint']
print('Browser WebSocket endpoint created:', browser_ws_endpoint)
# Connect to browser using pyppeteer
browser = await pyppeteer.connect({'browserWSEndpoint': browser_ws_endpoint})
try:
page = await browser.newPage()
await page.goto('https://example.com')
print(await page.title())
finally:
await browser.close()
asyncio.run(example())Perfil de navegador
Gestione perfiles de navegador para sesiones persistentes.
from scrapeless import Scrapeless
client = Scrapeless()
profile = client.profiles.create('My Profile')
print(profile)Scraping API
APIs directas para la extracción de datos de sitios web (por ejemplo, comercio electrónico, plataformas de viajes). Recupere información estructurada sobre productos, precios y reseñas mediante conectores predefinidos:
from scrapeless import Scrapeless
from scrapeless.types import ScrapingTaskRequest
client = Scrapeless()
request = ScrapingTaskRequest(
actor='scraper.google.search',
input={'q': 'nike site:www.nike.com'}
)
result = client.scraping.scrape(request=request)
print(result)Web Unlocker
Extraiga datos de sitios web usando Web Unlocker (expuesto como client.universal).
from scrapeless import Scrapeless
from scrapeless.types import UniversalScrapingRequest
client = Scrapeless()
result = client.universal.scrape(UniversalScrapingRequest(
actor='unlocker.webunlocker',
input={'url': 'https://example.com', 'method': 'GET', 'redirect': False}
))
print(result)Crawl
Extraiga datos de páginas individuales o recorra dominios completos, exportando en formatos que incluyen Markdown, JSON, HTML, capturas de pantalla y enlaces.
from scrapeless import Scrapeless
client = Scrapeless()
result = client.scraping_crawl.scrape_url("https://example.com")
print(result)Proxy
Genere una URL de proxy utilizando su puerta de enlace y configuración de sesión.
from scrapeless import Scrapeless
from scrapeless.types import ICreateProxy
client = Scrapeless()
proxy_url = client.proxies.proxy(ICreateProxy(
country='US',
session_duration=30,
session_id=client.proxies.generate_session_id(),
gateway='your-proxy-gateway:port'
))
print(proxy_url)AI Scraper
Extraiga contenido de chat de IA en masa para monitorear menciones de marca, comparar respuestas y analizar inteligencia competitiva de los modelos más recientes. Recupere URLs, indicaciones, respuestas en Markdown, citas y más a través de una sola integración.
Los Actor compatibles incluyen scraper.chatgpt, scraper.perplexity, scraper.copilot, scraper.gemini, scraper.aimode, scraper.overview, scraper.grok, y scraper.alexa. El JSON de input depende del actor; consulte la documentación de AI Scraper para parámetros detallados. El JSON opcional de webhook contiene un callback url.
from scrapeless import Scrapeless
from scrapeless.types import AIScraperTaskRequest
def main():
client = Scrapeless() # Uses SCRAPELESS_API_KEY
task = client.ai_scraper.create_task(AIScraperTaskRequest(
actor='scraper.chatgpt',
input={
'prompt': 'Most reliable proxy service for data extraction',
'country': 'US',
'web_search': True,
},
# Optional: webhook={'url': 'https://your-webhook.example.com'},
))
print('Created task:', task)
result = client.ai_scraper.get_task_result(task['task_id'])
print('Task status and result:', result)
# If status is 'running', call get_task_result again later.
# If status is 'failed', message contains the failure reason.
if __name__ == '__main__':
main()Ambos métodos devuelven el JSON de la API sin cambios. La creación devuelve task_id, status, y, cuando está disponible, task_result. La recuperación de resultados devuelve status, task_result cuando está disponible, y message en caso de error. El estado es success, failed, o running; el SDK no realiza sondeos automáticamente.
create_task acepta un AIScraperTaskRequest o un diccionario; los diccionarios también permiten parámetros adicionales de la API. Las respuestas son diccionarios.
Google Search API
from scrapeless import Scrapeless
from scrapeless.types import ScrapingTaskRequest
client = Scrapeless()
result = client.deepserp.scrape(ScrapingTaskRequest(
actor='scraper.google.search',
input={'q': 'nike site:www.nike.com'}
))
print(result)Para integraciones más completas, explore el directorio ejemplos del repositorio.
Manejo de errores
Capture ScrapelessError los errores de solicitud de API. Verifique por separado la status respuesta de AI Scraper para gestionar los fallos de tareas.
from scrapeless import Scrapeless, ScrapelessError
from scrapeless.types import UniversalScrapingRequest
client = Scrapeless()
try:
result = client.universal.scrape(UniversalScrapingRequest(
actor='unlocker.webunlocker',
input={'url': 'https://example.com', 'method': 'GET'}
))
print(result)
except ScrapelessError as error:
print(f'Scrapeless API error: {error}')La excepción actual en Python expone el mensaje de error; no define un atributo status_code .
Configuración / Variables de entorno
Se requiere la clave de API. Las sustituciones de endpoint son opcionales; la tabla muestra sus valores predeterminados.
Pase un diccionario a Scrapeless para anular la configuración:
import os
from scrapeless import Scrapeless
client = Scrapeless({
'api_key': os.environ['SCRAPELESS_API_KEY'],
'timeout': 30000, # Request timeout in milliseconds
'base_api_url': 'https://api.scrapeless.com',
'browser_api_url': 'https://browser.scrapeless.com',
'scraping_crawl_api_url': 'https://api.scrapeless.com',
})La configuración explícita tiene prioridad sobre las variables de entorno. El tiempo de espera predeterminado para solicitudes es de 30.000 milisegundos.
| Variable de entorno | Propósito / valor predeterminado |
|---|---|
SCRAPELESS_API_KEY | Clave de API requerida del panel de control. |
SCRAPELESS_BASE_API_URL | https://api.scrapeless.com |
SCRAPELESS_BROWSER_API_URL | https://browser.scrapeless.com |
SCRAPELESS_CRAWL_API_URL | https://api.scrapeless.com |
Soporte
- Código fuente del SDK y README
- Informar de un problema
- Documentación de Scrapeless
- Únase a la comunidad de Discord
- Soporte por correo electrónico
El SDK se publica bajo la Licencia MIT.