Parser de sitesDesenvolvimento e personalização

Um parser de sites em Python que coleta dados públicos de páginas em CSV ou Excel: preços, catálogos, anúncios

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 de sites em Python que coleta dados públicos de páginas em CSV ou Excel: preços, catálogos, anúncios

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

Um parser coleta dados que você vê em páginas web públicas e os salva como uma tabela: preços e estoque de produtos, o catálogo de um fornecedor para a sua loja, anúncios, vagas de emprego, eventos ou artigos. Diga o site e as páginas, liste os campos de que você precisa (nome, preço, link, imagem e assim por diante) e envie uma ou duas dessas páginas salvas no seu navegador (Arquivo > Salvar página como) ou capturas de tela delas. Nós escrevemos o parser em Python seguindo a estrutura real dessas páginas, e ele salva os resultados em CSV, Excel ou JSON. Você recebe um arquivo com o código, um arquivo de configurações com os endereços e a pausa entre as páginas, e um README que explica como instalar o Python e rodar o parser. Você roda o parser no seu próprio computador, então os dados vão direto para você; nós não coletamos nem guardamos os dados por você. Ele lê só páginas abertas, em um ritmo educado, e nunca faz login, contorna captchas ou outras proteções, nem coleta dados pessoais, como nomes, e-mails ou telefones de pessoas. Quando um site muda o layout, o parser pode precisar de uma atualização. Se você pode coletar e usar os dados de um site de acordo com os termos dele é responsabilidade sua.

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.
  • Seus campos, sua tabelaColunas na ordem de que você precisa
  • Feito com base nas páginas reaisEscrito seguindo a estrutura das páginas que você enviar
  • Ritmo educadoUma pausa entre as páginas, definida nas configurações
  • Roda no seu computadorWindows, macOS ou Linux, com Python
  • Um guia simplesO que instalar e como rodar, passo a passo

Como funciona

  1. 1
    PáginasVocê passa o site, os campos e uma ou duas páginas salvas
  2. 2
    ParserEscrevemos o código e o guia para rodá-lo
  3. 3
    ExecuçãoVocê roda e confere as primeiras linhas da tabela
  4. 4
    AjustesVocê pede ajustes dentro do seu pacote e envia qualquer mensagem de erro

O que precisamos de você

O site e as páginas exatas: um link para uma lista e para uma página de item, e mais ou menos quantas páginas há. Os campos de que você precisa, na ordem da sua tabela, com um exemplo de cada. Uma ou duas dessas páginas salvas no seu navegador como HTML (Arquivo > Salvar página como) ou capturas de tela, para o parser seguir a estrutura real delas. O arquivo de resultados de que você precisa (CSV, Excel ou JSON) e onde você vai rodá-lo.

Vamos perguntar:

  • Qual site e quais páginas?
  • Os campos de que você precisa
  • Mais ou menos quantas páginas?
  • O arquivo de resultados
  • Algo mais que ele deva fazer

Compare os pacotes

PacotesBásicoParser para um tipo de páginaR$ 140PadrãoPáginas de lista e de itemR$ 273PremiumVários sites ou tipos de páginaR$ 496
Prazo1 dia2 dias3 dias
Ajustes123
Sites11até 3
Tipos de página12 (lista e item)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
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

É legal fazer parsing de um site?

Coletar dados públicos é permitido em muitos casos, mas os termos de uso dos sites e as leis de dados variam entre os países, então você decide se pode coletar e usar os dados. O parser nunca faz login, não contorna proteções nem coleta dados pessoais, o que o mantém do lado seguro.

Vocês coletam os dados para mim?

Não. Você recebe o parser e o roda você mesmo, então os resultados vão direto para você, e você pode rodá-lo de novo sempre que precisar de dados atualizados.

E se o site mudar ou bloquear o parser?

O parser funciona com as páginas como elas estão agora. Se o site mudar o layout depois, o parser precisa de uma atualização, que é um novo pedido. Ele lê em um ritmo educado, mas um site ainda pode limitar as visitas; ele não contorna esses limites.

Ele consegue fazer parsing da Amazon, do Google ou de redes sociais?

Não. Os termos deles proíbem coletar os dados dessa forma, muitas das páginas exigem login, e elas contêm dados pessoais de pessoas. Para esses dados, use a API oficial ou a exportação do serviço.

Preciso saber programar?

Não. O README explica como instalar o Python uma vez, instalar o que o parser precisa com um comando e rodá-lo. Para páginas que montam o conteúdo com JavaScript, o parser usa uma biblioteca de navegador (Playwright), que o README também cobre.

Não encontrou a resposta?

Pacotes