AI ScraperGuia

O programa e suas versões

Tudo o que um scraper faz está no programa dele — Python com Playwright, escrito sobre uma pequena biblioteca que guarda as regras para conduzir e ler uma página. Toda mudança, sua ou do assistente, gera uma versão numerada nova; uma versão é o rascunho em que você trabalha, outra é a publicada, e as execuções da publicada nunca mudam até você publicar de novo.

O que você vai aprender
  • Ler as partes de um programa gerado
  • Mudar o programa à mão ou pelo assistente
  • Provar uma versão com Testar e publicar
  • Comparar e restaurar versões

Como é o programa

O topo do arquivo guarda as decisões — por onde começar, quais linhas ler e como cada campo é lido. A função main(inputs) percorre os passos, cada um dentro de waiso.step(...) para ganhar a foto e a linha dela na Sessão do programa, e devolve as linhas.

Pythonshop_products.py
from playwright.sync_api import sync_playwright

import waiso_runtime as waiso  # steps, pictures, reading rules

START_URL = "https://shop.example.com/category/{{category}}"

ROW_SELECTOR = "div.product"
FIELDS = {
    "name": {"selector": ".name"},
    "price": {"selector": ".price", "type": "number"},
    "inStock": {"selector": ".available", "read": "attr",
                "attr": "data-available", "type": "boolean"},
}


def main(inputs: dict) -> list[dict]:
    with sync_playwright() as p:
        browser = waiso.launch(p)
        page = browser.new_page()
        with waiso.step("Open the category", page, mark=None):
            waiso.goto(page, START_URL, inputs)
        with waiso.step("Read the products", page, mark=ROW_SELECTOR):
            rows = waiso.extract(page, ROW_SELECTOR, FIELDS, [])
        browser.close()
    return rows

A biblioteca por trás

As regras para conduzir e ler uma página ficam na biblioteca waiso_runtime, não em cada arquivo: goto, click e fill conduzem a página, extract lê linhas e campos, each_page segue a paginação e crawl percorre um site inteiro. Isso deixa o programa curto o bastante para ler numa tela só, e uma correção numa regra de leitura chega a todos os scrapers de uma vez. O programa precisa da biblioteca para rodar, então ele roda dentro do Waiso, não sozinho.

A aba Código do scraper é sempre editável; salvar gera uma versão nova.

Mude

Pelo assistente

Peça no chat — “leia também a avaliação”, “pule itens fora de estoque”. O assistente altera o programa existente, o chat mostra a mudança como um diff, e o resultado é uma versão nova marcada Alterada pelo assistente.

À mão

Edite a aba Código do scraper e clique em Salvar como nova versão. Se o código mudou enquanto isso — o assistente salvou uma versão enquanto você digitava —, o salvamento é recusado: O código mudou enquanto isso (agora v7). Recarregue antes de salvar — sua edição não foi aplicada. Nada é mesclado em silêncio.

Teste e publique

  1. Defina as entradas

    A aba Entradas guarda os valores que o próximo Testar usa.

  2. Clique em Testar

    O rascunho roda como está, sem modelo. Uma versão que rodou sem erro fica marcada como Testada.

  3. Clique em Publicar

    O rascunho vira a versão que todo flow, agendamento e endpoint chama — Publicado — esta versão está no ar.

Versões

MarcaSignificado
RascunhoA versão que você edita e testa.
PublicadaA versão que todo chamador roda.
Testada / Não testadaSe um Testar já mostrou que ela funciona.
Gerada pelo build · Alterada pelo assistenteDe onde a versão veio; salvamentos à mão e restaurações também são marcados.

Comparar com o rascunho mostra qualquer versão contra o rascunho. Restaurar torna uma versão antiga o rascunho como uma versão nova, então o histórico só cresce e nada se perde.