blacktrue/sat-scraper

该软件包已被弃用,不再维护。没有建议的替代包。

从SAT网页大量提取电子发票的Web抓取

v2.1.1 2017-11-03 04:06 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:06:39 UTC


README

通过Web抓取从SAT网页获取发出的、接收的、已取消的发票。

通过composer安装

要求作为composer模块的库

composer require blacktrue/sat-scraper

按日期范围下载示例

require "vendor/autoload.php";

use Blacktrue\Scraping\SATScraper;

$satScraper = new SATScraper([
    'rfc' => 'XAXX010101000',
    'ciec' => '123456',
    'tipoDescarga' => 'recibidos',//emitidos
    'cancelados' => true,//false, * todos,
    //'loginUrl' => 'https://cfdiau.sat.gob.mx/nidp/app/login?id=4&sid=1&option=credential' //Opcional para sobreescribir la url del login
]);

$satScraper->downloadPeriod(2016,7,1,2016,7,1);
print_r($satScraper->getData());

按uuid列表下载示例

$satScraper->downloadListUUID([
    '5cc88a1a-8672-11e6-ae22-56b6b6499611',
    '5cc88c4a-8672-11e6-ae22-56b6b6499611',
    '5cc88d4e-8672-11e6-ae22-56b6b6499611'
]);
print_r($satScraper->getData());

异常

require "vendor/autoload.php";

use Blacktrue\Scraping\SATScraper;
use Blacktrue\Scraping\Exceptions\SATCredentialsException;
use Blacktrue\Scraping\Exceptions\SATAuthenticatedException;

try{
    $satScraper = new SATScraper([
        'rfc' => 'XAXX010101000',
        'ciec' => '123456',
        'tipoDescarga' => 'recibidos',//emitidos
        'cancelados' => true,//false
    ]);
}catch(SATCredentialsException $e){ //Error de credenciales
    echo $e->getMessage();
}catch(SATAuthenticatedException $e){ //Error en login, posible cambio en metodo de login
    echo $e->getMessage();
}

检查是否存在500错误凭证

require "vendor/autoload.php";

use Blacktrue\Scraping\SATScraper;

$satScraper = new SATScraper([
    'rfc' => 'XAXX010101000',
    'ciec' => '123456',
    'tipoDescarga' => 'recibidos',//emitidos
    'cancelados' => true,//false
]);

$satScraper->setOnFiveHundred(function($data){
	print_r($data);
});

$satScraper->downloadPeriod(2016,7,1,2016,7,1);
print_r($satScraper->getData());

下载CFDI

require "vendor/autoload.php";

use Blacktrue\Scraping\DownloadXML;
use Blacktrue\Scraping\SATScraper;

$satScraper = new SATScraper([
    'rfc' => 'XAXX010101000',
    'ciec' => '123456',
    'tipoDescarga' => 'recibidos',//emitidos
    'cancelados' => true,//false
]);

$satScraper->downloadPeriod(2016,7,1,2016,7,1);

(new DownloadXML)
    ->setSatScraper($satScraper)
    ->setConcurrency(50)
    ->download(function ($contentXml,$name) use ($rfc){
        $f = new SplFileObject($rfc.DIRECTORY_SEPARATOR.$name,'w');
        $f->fwrite($contentXml);
        $f = null;
    });