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

Exemplos de instruções de análise

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

O trecho de HTML a seguir é analisado usando instruções de parsing de exemplo nas seções seguintes.

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">Ótimo</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">Legal</li>
                    <li class="description-item">Meias</li>
                </ul>
            </div>
        </div>
    </div>
</body>

Mínimo necessário

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

Exemplo 1. Seleção de itens da descrição de Sapatos usando XPath.

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

O comportamento exato xpath 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á apontando para 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 forma.

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, ele 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 função 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 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 no sapatos escopo:

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

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

  1. Comece processando o shoes._fns pipeline, que produzirá o sapatos elemento HTML;

  2. Pegue shoes._fns a saída do pipeline e use-a como entrada para pipelines definidos em title, price, e descrição escopos;

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

O resultado ficará 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 de shoes e o passa para pipelines posteriores 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 função HTML de exemplo é usado novamente como documento em análise.

Se você quiser que seu resultado analisado fique assim:

As instruções de parsing teriam a seguinte forma:

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

A estrutura das instruções 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 pipeline agora produzirá uma lista de todos os elementos que correspondem à expressão XPath fornecida (uma lista de elementos de produto).

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

Se _items a propriedade reservada não fosse usada nas instruções de parsing do Exemplo 4, o resultado analisado ficaria assim:

Selecionar o N-ésimo elemento de uma lista

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

Várias opções podem ser usadas para selecionar o N-ésimo elemento de uma lista de quaisquer valores.

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

A função 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. Selecionar o 2º preço usando o seletor [] do XPath.

Resultado:

Opção 2

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

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

Resultado:

Opção 3

Você pode usá-lo select_nth com qualquer tipo de lista, incluindo listas de elementos HTML:

Exemplo 7. Selecionando todos os elementos HTML do 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 ao 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 à convert_to_float função falhar ao converter cadeia de caracteres para 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, você pode suprimir avisos/erros com "_on_error": "suppress" parâmetro:

O que então produzirá o seguinte resultado:

Array de arrays

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

Digamos que você queira analisar o documento para que o resultado seja um array bidimensional 3x3 de inteiros:

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

Atualizado

Isto foi útil?