PHPackages                             phpcfdi/sat-pys-scraper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. phpcfdi/sat-pys-scraper

ActiveLibrary

phpcfdi/sat-pys-scraper
=======================

Herramienta para obtener y generar un listado de las clasificaciones del catálogo de productos y servicios del SAT

v5.0.0(5mo ago)6103MITPHPPHP &gt;=8.3CI passing

Since Dec 19Pushed 5mo ago3 watchersCompare

[ Source](https://github.com/phpcfdi/sat-pys-scraper)[ Packagist](https://packagist.org/packages/phpcfdi/sat-pys-scraper)[ Docs](https://github.com/phpcfdi/sat-pys-scraper)[ RSS](/packages/phpcfdi-sat-pys-scraper/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (4)Versions (10)Used By (0)

phpcfdi/sat-pys-scraper
=======================

[](#phpcfdisat-pys-scraper)

[![Source Code](https://camo.githubusercontent.com/716c32fd2cc889dc03cbc904798dacd19ba5db7b9143fc134d8368983c66c6db/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d706870636664692f7361742d2d7079732d2d736372617065722d626c75653f6c6f676f3d676974687562)](https://github.com/phpcfdi/sat-pys-scraper)[![PHP Version](https://camo.githubusercontent.com/62a75d46d06837a4ea7ad16daab64a1eb1749a724b48962e9f620083f2c9b67f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f706870636664692f7361742d7079732d736372617065722f7068703f6c6f676f3d706870)](https://packagist.org/packages/phpcfdi/sat-pys-scraper)[![Latest Version](https://camo.githubusercontent.com/77a124537291a250910ab9dd9a8b14731216c33f9ec4ceb4ee41d2ab2f711e47/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f706870636664692f7361742d7079732d736372617065723f6c6f676f3d676974)](https://github.com/phpcfdi/sat-pys-scraper/releases)[![Software License](https://camo.githubusercontent.com/28b09fe63588c10f6d656c1596ffd9e24f5b0ae424fa9b13cfeb0ad5c0486b34/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f706870636664692f7361742d7079732d736372617065723f6c6f676f3d6f70656e2d736f757263652d696e6974696174697665)](https://github.com/phpcfdi/sat-pys-scraper/blob/main/LICENSE)[![Build Status](https://camo.githubusercontent.com/65da0a14fc8740670336d1d2df7c43960fd68be1e70967bb26e589c9d9950295/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f706870636664692f7361742d7079732d736372617065722f6275696c642e796d6c3f6272616e63683d6d61696e266c6f676f3d6769746875622d616374696f6e73)](https://github.com/phpcfdi/sat-pys-scraper/actions/workflows/build.yml?query=branch:main)[![Reliability](https://camo.githubusercontent.com/d0d28dc1c95fa7cf2f8fd632400d461688a6d8b719537307c7804206e5bec22a/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d706870636664695f7361742d7079732d73637261706572266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-pys-scraper&metric=Reliability)[![Maintainability](https://camo.githubusercontent.com/4e72040bd03c34772c0042a2d84dedb9b7acc6ad823643c8048522c181d3b65e/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d706870636664695f7361742d7079732d73637261706572266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-pys-scraper&metric=Maintainability)[![Code Coverage](https://camo.githubusercontent.com/bed0f462745af1f0cd5e9b1708b610827048312d3ca9f40c259133db0a6f7586/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f636f7665726167652f706870636664695f7361742d7079732d736372617065722f6d61696e3f6c6f676f3d736f6e617271756265636c6f7564267365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f)](https://sonarcloud.io/component_measures?id=phpcfdi_sat-pys-scraper&metric=Coverage)[![Violations](https://camo.githubusercontent.com/e9ee1067bb6bff99ec8c98c99415825f02da3260a1538c22b5a4493a718ae6a3/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f76696f6c6174696f6e732f706870636664695f7361742d7079732d736372617065722f6d61696e3f666f726d61743d6c6f6e67266c6f676f3d736f6e617271756265636c6f7564267365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f)](https://sonarcloud.io/project/issues?id=phpcfdi_sat-pys-scraper&resolved=false)[![Total Downloads](https://camo.githubusercontent.com/1b7a163fffba9eb49957568cd7145f82f92f126b8334a499cf319d2550016f7e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f706870636664692f7361742d7079732d736372617065723f6c6f676f3d7061636b6167697374)](https://packagist.org/packages/phpcfdi/sat-pys-scraper)[![Docker Downloads](https://camo.githubusercontent.com/d987062e781e9c2b609ca57178482034e8a8ce605ab5dbe1a1223c7ac0207276/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f70756c6c732f706870636664692f7361742d7079732d736372617065723f6c6f676f3d646f636b6572)](https://hub.docker.com/r/phpcfdi/sat-pys-scraper)

> Herramienta para obtener y generar un listado de las clasificaciones del catálogo de productos y servicios del SAT

🇺🇸 The documentation of this project is in Spanish, as this is the natural language for the intended audience.

Es posible que, lo único que buscas es el **Listado de clasificaciones de productos y servicios del SAT**, si es ese el caso, es mejor consumir el recurso [phpcfdi/resources-pys](https://github.com/phpcfdi/resources-pys), en donde el listado es actualizado automáticamente.

Acerca de phpcfdi/sat-pys-scraper
---------------------------------

[](#acerca-de-phpcfdisat-pys-scraper)

El SAT en el sitio de internet  tiene publicada una clasificación de productos y servicios. Esta clasificación no pertenece oficialmente a los catálogos y no se encuentra publicada en ningún lugar.

Esta herramienta hace el *scrap* del sitio mencionado para obtener los 4 niveles de clasificación: Tipo, Segmento, Familia y Clase. Igualmente, la estructura se puede exportar como XML o como JSON.

Instalación usando composer
---------------------------

[](#instalación-usando-composer)

A diferencia de otras librerías o componentes, este proyecto es una herramienta, por lo que probablemente nunca tengas que instalar el proyecto como una dependencia. Sin embargo, se puede hacer para que realices la parte de obtener las clasificaciones del sitio del SAT, pero tú mismo te encargues de procesar la estructura y usarla para tus propios propósitos, como por ejemplo, almacenar en una base de datos.

```
composer require phpcfdi/sat-pys-scraper
```

Ejecución usando Docker
-----------------------

[](#ejecución-usando-docker)

Este proyecto está integrado a Docker Hub [`phpcfdi/sat-pys-scraper`](https://hub.docker.com/r/phpcfdi/sat-pys-scraper) por lo que puedes ejecutarlo desde la línea de comandos:

```
# obtener la imagen de docker
docker pull phpcfdi/sat-pys-scraper

# ejecución de la herramienta
docker docker run -it --rm --user="$(id -u):$(id -g)" sat-pys-scraper --help
```

Este proyecto provee un archivo `Dockerfile` para construir una imagen con todas sus dependencias.

Para más información y ejemplos consulte el archivo [`README.Docker.md`](Docker.README.md).

### Ayuda de `sat-pys-scraper` (script)

[](#ayuda-de-sat-pys-scraper-script)

```
sat-pys-scraper - Crea un archivo con la clasificación de productos y servicios del SAT.

Sintaxis:
    sat-pys-scraper help|-h|--help
    sat-pys-scraper [--quiet|-q] [--json|-j JSON_FILE] [--xml|-x XML_FILE]

Argumentos:
    --xml|-x XML_FILE
        Establece el nombre de archivo, o "-" para la salida estándar, donde se envían
        los datos generados en formato XML.
    --json|-j JSON_FILE
        Establece el nombre de archivo, o "-" para la salida estándar, donde se envían
        los datos generados en formato JSON.
    --sort|-s SORT
        Establece el orden de elementos, default: key, se puede usar "key" o "name".
    --quiet|-q
        Modo de operación silencioso.

Notas:
    Debe especificar al menos un argumento "--xml" o "--json", o ambos.
    No se puede especificar "-" como salida de "--xml" y "--json" al mismo tiempo.

Acerca de:
    Este script pertenece al proyecto https://github.com/phpcfdi/sat-pys-scraper
    y mantiene la autoría y licencia de todo el proyecto.

```

Uso de la herramienta
---------------------

[](#uso-de-la-herramienta)

Si usar el código de la herramienta, entonces es importante entender que la tarea trata de dos pasos:

1. Obtener del sitio del SAT el listado de tipos, segmentos, familias y clases.
2. Exportar el listado a un formato específico.

Para generar el listado de tipos, segmentos, familias y clases se usa el objeto `Generator`, que a su vez usa un objeto `Scraper` para realizar la descarga de información, que a su vez utiliza un objeto `Client` de `GuzzleHttp`.

En el siguiente ejemplo se muestra cómo generar la estructura e iterar sobre sus elementos.

- Al ejecutar `Generator::generate()` se devuelve un objeto de tipo `Types`.
- Se recorre la estructura con `foreach`.
- Se puede exportar usando `XmlExporter::export()`.

```
