Parser de catálogo de fornecedorDesenvolvimento e personalização

Um parser em Python que transforma o catálogo aberto de um fornecedor em um arquivo de importação para a sua loja, com links das fotos

Normalmente fica pronto em 15 minutosAjustes incluídosControle de qualidade
Pacotes
Pagamento protegidoDetalhes
  • Os ajustes previstos no pacote são gratuitos.
  • Se você não responder em 3 dias após a entrega, o trabalho é aprovado automaticamente.

O dinheiro fica reservado no pagamento e só é liberado quando você aprova o trabalho.

Um parser em Python que transforma o catálogo aberto de um fornecedor em um arquivo de importação para a sua loja, com links das fotos

Exemplo de resultado

Exemplo do pacote Padrão

Parser do catálogo de um fornecedor de ferramentas de jardinagem para o Excel

Como fica o resultado

ArtigoNomePreçoEm estoquePesoFoto
GT-1042Tesoura de poda, 20 mm18,90Sim0,24 kg…/gt-1042.jpg
GT-1187Serrote dobrável, 210 mm24,50Sim0,31 kg…/gt-1187.jpg
GT-2210Tesoura para cerca viva, lâmina ondulada39,00Não1,10 kg…/gt-2210.jpg
GT-3305Pá de jardinagem, inox9,80Sim0,18 kg…/gt-3305.jpg
GT-4120Mangueira de jardim 25 m, 1/2"42,00Sim2,90 kg…/gt-4120.jpg

O arquivo do exemplo tem 1.236 produtos de 52 páginas de lista.

Um trecho do código

def product_links(list_url: str) -> Iterator[str]:
    """Links das páginas de produto de todas as páginas da lista, seguindo o botão 'Próxima'."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Uma página aberta, em um ritmo educado: uma pausa entre as requisições e algumas tentativas em caso de erro."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s respondeu %s, tentativa %d de 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} não abriu depois de 3 tentativas")

Arquivos: um arquivo ZIP com scraper.py, settings.ini (a página inicial, a pausa entre as requisições, o nome do arquivo), requirements.txt e um README sobre como instalar e rodar. Ele lê só páginas abertas, uma a cada 2 segundos, e confere antes o robots.txt do site. O cliente roda o parser no próprio computador.

Cliente: uma loja online de jardinagem que revende as ferramentas de um fornecedor; o fornecedor tem um catálogo aberto no site, mas nenhum arquivo de tabela de preços. Tarefa: percorrer as páginas de lista do catálogo, abrir cada página de produto e salvar no Excel o código do artigo, o nome, o preço, o estoque, o peso e o link da foto principal, para comparar os preços uma vez por semana.

O cliente e todos os dados são fictícios.

Sobre este serviço

Quando um fornecedor mostra o seu mix em um site aberto, mas não envia nenhum arquivo, este parser copia o catálogo para uma tabela que a sua loja consegue importar: nome, código, preço, descrição, especificações, categoria e links das fotos, e salva as fotos em uma pasta. Envie o site do fornecedor, links para uma categoria e uma página de produto, uma ou duas páginas salvas no seu navegador e o modelo de importação da sua loja, por exemplo um CSV da Shopify ou do WooCommerce, para as colunas seguirem esse modelo. Você recebe o código em Python com um arquivo de configurações e um README e roda no seu computador. Use só fotos e textos que o fornecedor permitir. Ele lê páginas abertas em um ritmo educado e nunca faz login, não contorna captchas nem proteções e não coleta dados pessoais. Você decide se os termos do site permitem; uma mudança futura no layout dele exige uma atualização.

O que está incluído

  • O que você recebeUm arquivo ZIP com o código em Python, um arquivo de configurações e um README com instruções passo a passo; o código também aparece na página do pedido.
  • Colunas para a sua importaçãoNa ordem e com os nomes do arquivo de importação da sua loja
  • Fotos prontas para carregarLinks das fotos em uma coluna e arquivos nomeados pelo código do produto
  • Preços como aparecemO preço do fornecedor; a sua margem você inclui na tabela
  • Ritmo educadoUma pausa entre as páginas, definida nas configurações
  • Um guia simplesO que instalar e como rodar, passo a passo

Como funciona

  1. 1
    CatálogoVocê passa as páginas do fornecedor e o seu modelo de importação
  2. 2
    ParserEscrevemos o código e o guia para rodá-lo
  3. 3
    Importação de testeVocê roda e importa as primeiras linhas na sua loja
  4. 4
    AjustesVocê pede ajustes dentro do seu pacote e envia qualquer mensagem de erro

O que precisamos de você

O site do fornecedor: um link para uma categoria e para uma página de produto, e mais ou menos quantos produtos há. O modelo de importação da sua loja ou uma exportação de exemplo com alguns dos seus produtos, para as colunas baterem. Os campos de que você precisa, como nome, código, preço, descrição, especificações, categoria, fotos. Uma ou duas páginas do fornecedor salvas no seu navegador (Arquivo > Salvar página como). Como nomear os arquivos das fotos. E a sua confirmação de que o fornecedor permite usar as fotos e os textos dele.

Vamos perguntar:

  • Qual site do fornecedor e quais páginas?
  • A sua loja e o arquivo de importação dela
  • Mais ou menos quantos produtos?
  • Fotos

Compare os pacotes

PacotesBásicoPáginas de produtos para uma tabelaR$ 123PadrãoUma seção inteira do catálogoR$ 240PremiumVários fornecedores ou seçõesR$ 423
Prazo1 dia2 dias3 dias
Ajustes123
Sites11até 3
Tipos de página12 (categoria e produto)até 3
Camposaté 10até 25até 25 em cada
Percorre as páginas de uma listagemNãoSimSim
Arquivo de resultadosCSVExcel ou CSVExcel, CSV ou JSON
Duplicados removidos, retoma de onde parouNãoNãoSim
Fotoslinks em uma coluna, arquivos em uma pastalinks em uma coluna, arquivos em uma pastalinks em uma coluna, arquivos em uma pasta
Fazer pedido BásicoFazer pedido PadrãoFazer pedido Premium

Pagamento protegido

Você paga ao fazer o pedido, mas o dinheiro só é liberado pelo trabalho aprovado.

  • Preço fixoO preço do pacote não muda depois que você paga.
  • O dinheiro fica reservadoAo pagar, o valor fica apenas reservado. Ele só é repassado quando você aprova o trabalho.
  • Verificado antes da entregaCada resultado passa por um controle de qualidade antes de chegar até você, e você o vê na página do pedido antes de aprovar.
  • Ajustes gratuitosPeça ajustes dentro do seu briefing quantas vezes o pacote permitir.
  • Aprovação após 3 diasSe em 3 dias após a entrega você não aprovar o trabalho nem pedir ajustes, ele é aprovado automaticamente. Se você escrever no chat do pedido após a entrega, o pedido fica em espera; depois que respondermos, podemos reiniciar a contagem de 3 dias e avisaremos no chat.
  • Refazer ou reembolso totalSe o resultado não corresponder ao seu briefing e os ajustes não resolverem, ou se o trabalho levar mais que o dobro do prazo, escreva no chat do pedido: refazemos o trabalho ou reembolsamos o pagamento integralmente.
Como funciona →

Perguntas e respostas

O arquivo vai importar na minha loja de primeira?

As colunas seguem o modelo que você enviar, então na maioria dos casos, sim. Conferimos o arquivo com o seu modelo, não dentro da sua loja, então faça uma importação pequena das primeiras linhas antes de carregar tudo.

Posso usar as fotos e descrições do fornecedor?

Só se o fornecedor permitir: elas pertencem ao dono, e conseguir a permissão é com você. O parser salva só as imagens que você pode usar.

Ele consegue ler preços de revendedor atrás do login do fornecedor?

Não. Ele nunca faz login, então preços de revendedor ou de atacado atrás de uma conta ficam fora de alcance. Peça ao fornecedor um arquivo de preços; o parser ainda coleta o resto do catálogo aberto.

Ele pode copiar um catálogo da Amazon, do Google ou de uma loja em rede social?

Não. Os termos deles proíbem; o mesmo vale para o LinkedIn e outras redes sociais. Use a exportação oficial do serviço ou peça um arquivo ao vendedor.

E se o fornecedor mudar o site?

O parser segue as páginas como elas são hoje. Uma mudança futura de layout exige uma atualização, que é um novo pedido.

Não encontrou a resposta?

Pacotes