For the complete documentation index, see llms.txt. This page is also available as Markdown.

Exemplos de instruções de parsing

Veja exemplos práticos de instruções de análise para o Custom Parser: manipule objetos aninhados, listas, erros e matrizes de matrizes.

O seguinte trecho de HTML é analisado usando instruções de parsing de exemplo nas próximas seções.

HTML de exemplo

<body>
    <div id="products">
        <div class="product" id="shoes">
            <div class="title">Sapatos</div>
            <div class="price">223.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Super</li>
                </ul>
            </div>
        </div>
        <div class="product" id="pants">
            <div class="title">Calças</div>
            <div class="price">60.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Incrível</li>
                    <li class="description-item">Qualidade</li>
                </ul>
            </div>
        </div>
        <div class="product" id="socks">
            <div class="title">Meias</div>
            <div class="price">123.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Muito</li>
                    <li class="description-item">Bom</li>
                    <li class="description-item">Meias</li>
                </ul>
            </div>
        </div>
    </div>
</body>

Mínimo indispensável

Caso de uso: você quer extrair o texto de todos os sapatos descrição itens.

Exemplo 1. Seleção dos itens de descrição dos sapatos usando XPath.

A xpath a função encontrará um único item e o colocará em uma lista como uma string:

O exato xpath comportamento da função é descrito aqui.

Instruções de parsing aninhadas

Caso de uso: você quer analisar todas as informações relacionadas aos sapatos. Além disso, o resultado analisado deve representar a estrutura do documento do HTML fornecido.

Você está direcionando esta parte do HTML de exemplo:

E você gostaria que o resultado analisado tivesse a seguinte estrutura:

As instruções de parsing teriam a seguinte aparência.

Exemplo 2. As instruções de parsing são usadas para analisar sapatos informações.

xpath_one funciona de forma semelhante a xpath, mas em vez de retornar uma lista de todas as correspondências, retorna o primeiro item correspondente.

No exemplo acima, a sapatos propriedade é a única propriedade definida no escopo mais externo das instruções. A sapatos propriedade contém instruções de parsing aninhadas.

A sapatos o escopo das instruções não tem um pipeline definido (_fns propriedade está ausente). Isso significa que os pipelines definidos em title, price, e descrição os escopos usarão o documento em análise como entrada do pipeline.

No Exemplo 2, você pode ver uma repetição de //div[@id='shoes'] nas expressões XPath. A repetição pode ser evitada definindo um pipeline em sapatos escopo:

Exemplo 3. Definindo um pipeline nas instruções de escopo sapatos para evitar a repetição da expressão XPath.

Usando as instruções de parsing fornecidas no Exemplo 3, Custom Parser irá:

  1. Começar processando shoes._fns pipeline, que produzirá o sapatos elemento HTML;

  2. Pegar a saída do shoes._fns pipeline e usá-la como entrada para os pipelines definidos em title, price, e descrição escopos;

  3. Processar title, price, e descrição pipelines para produzir os valores finais.

O resultado será igual ao resultado do Exemplo 2:

A principal diferença entre o Exemplo 2 e o Exemplo 3 é que, no Exemplo 3, o pipeline é definido no sapatos escopo. Esse pipeline adicional seleciona o elemento dos sapatos e o passa adiante para outros pipelines encontrados mais profundamente na hierarquia de instruções.

Lista de objetos aninhados

Caso de uso: Anteriormente, você queria analisar apenas sapatos informações. Agora você quer analisar as informações de todos os produtos no HTML.

A HTML de exemplo é usado novamente como o documento em análise.

Se você quiser que o resultado analisado se pareça com isto:

As instruções de parsing teriam a seguinte aparência:

Exemplo 4. Analisando todos os produtos encontrados no documento HTML.

A estrutura da instrução de parsing parece semelhante à do Exemplo 3. No entanto, há duas exceções principais:

  1. xpath é usado em vez de xpath_one em products._fns pipeline. products._fns o pipeline agora produzirá uma lista de todos os elementos que correspondem à expressão XPath fornecida (uma lista de elementos de produto).

  2. _items a propriedade reservada é usada para indicar que você quer formar uma lista iterando por cada item da saída do products._fns pipeline e passando/processando cada item da lista separadamente para o escopo do pipeline.

Se _items a propriedade reservada não fosse usada nas instruções de parsing do Exemplo 4, o resultado analisado teria a seguinte aparência:

Selecione o enésimo elemento de uma lista

Esta seção demonstra a flexibilidade dos pipelines. O mesmo problema pode ser abordado de maneiras diferentes.

Múltiplas opções podem ser usadas para selecionar o enésimo elemento de uma lista de qualquer valor.

Caso de uso: você quer selecionar o segundo preço do produto na página.

A HTML de exemplo é usado novamente como exemplo. Você tem várias opções para selecionar o 2º produto.

Opção 1

Você pode utilizar o seletor XPath [] e definir a seleção na expressão XPath.

Exemplo 5. Selecione o 2º preço usando o seletor XPath [].

Resultado:

Opção 2

Você também pode usar a xpath função para encontrar todos os preços e encaminhá-la para a função select_nth, que seleciona o enésimo elemento da lista extraída de preços.

Exemplo 6. Selecione o 2º valor usando a função `select_nth`.

Resultado:

Opção 3

Você pode usar select_nth com qualquer tipo de lista, incluindo listas de elementos HTML:

Exemplo 7. Selecionando todos os elementos HTML de produto com class="product" ==> selecionando o 2º elemento de produto da lista ==> extraindo o texto do preço do elemento HTML do produto selecionado.

Resultado:

Tratamento de erros

Ao receber o seguinte trecho de HTML:

E tentar analisá-lo com as seguintes instruções de parsing:

Custom Parser retornará um resultado analisado em que price e title foram analisados normalmente, mas o descrição falhou ao ser analisado devido ao convert_to_float falhar ao converter string até float:

Por padrão, todos os erros são contados como avisos e são colocados dentro da _warnings lista. Se você quiser ignorar os erros ao analisar um campo, eles podem suprimir avisos/erros com "_on_error": "suppress" parâmetro:

O que então produzirá o seguinte resultado:

Matriz de matrizes

Custom Parser permite matrizes N-dimensionais nos resultados analisados. Como exemplo, vamos usar o seguinte trecho de HTML:

Digamos que você queira analisar o documento de forma que o resultado seja uma matriz 2D 3x3 de inteiros:

Para analisar o HTML no JSON acima, você pode usar as seguintes instruções de parsing:

Isto foi útil?