Un scraper en PHP para descargar constancias de situación fiscal del SAT México.
composer install phpcfdi/csf-sat-scraper<?php
require 'vendor/autoload.php';
use PhpCfdi\CsfSatScraper\Scraper;
use PhpCfdi\CsfSatScraper\HttpClientFactory;
use PhpCfdi\ImageCaptchaResolver\Resolvers\ConsoleResolver;
$client = HttpClientFactory::create([
'curl' => [
CURLOPT_SSL_CIPHER_LIST => 'DEFAULT@SECLEVEL=1',
],
RequestOptions::VERIFY => false,
]);
$captchaSolver = new ConsoleResolver();
$scraper = new Scraper(
$client,
$captchaSolver,
'TU_RFC',
'TU_CONTRASEÑA'
);
$pdfContent = $scraper->download();
file_put_contents('constancia.pdf', $pdfContent);# Todos los tests
composer test
# Con formato legible
vendor/bin/phpunit --testdox
# Sin cobertura (más rápido)
vendor/bin/phpunit --no-coverage
# Test específico
vendor/bin/phpunit tests/Unit/Services/CaptchaServiceTest.phpcomposer test-coverage
open coverage/index.html- PHP 8.4+
- Composer
- Extensión cURL
guzzlehttp/guzzle- Cliente HTTPsymfony/dom-crawler- Parsing de HTMLphpcfdi/image-captcha-resolver- Resolución de captchas
phpunit/phpunit^10.0 - Framework de testing
Maneja todo el proceso de autenticación:
- Inicialización de login
- Obtención del formulario
- Envío de credenciales
- Verificación de sesión
Resuelve el captcha del SAT:
- Extracción de imagen del HTML
- Resolución con el solver configurado
Gestiona el flujo SSO/SAML:
- Procesamiento de formularios SAML
- Manejo de iframes
- Redirecciones SSO
Descarga el documento:
- Envío de formulario final
- Descarga del PDF
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
composer testMIT License
Cesar Aguilera - cesargnu29@gmail.com
- PhpCfdi por image-captcha-resolver
- Comunidad de PHP por las herramientas