blacktrue / sat-scraper
该软件包已被弃用,不再维护。没有建议的替代包。
从SAT网页大量提取电子发票的Web抓取
v2.1.1
2017-11-03 04:06 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
- phpunit/phpunit: ^6.2
- sunra/php-simple-html-dom-parser: ^1.5
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; });