3 pontos por GN⁺ 2024-04-15 | 1 comentários | Compartilhar no WhatsApp
  • MarkdownDown é uma ferramenta que transforma qualquer página da web em um documento Markdown limpo
  • O resultado da conversão oferece suporte a download de imagens, permitindo vincular ao Markdown imagens salvas localmente
  • A opção remoção de elementos não relacionados ao conteúdo ajuda a reduzir elementos sem relação com o corpo do texto
  • Também oferece a opção de aplicar o GPT Filter ao resultado em Markdown
  • É útil para usuários que desejam arquivar o conteúdo de páginas da web em Markdown ou organizar também as imagens junto com ele

Organizar páginas da web em Markdown

  • MarkdownDown converte páginas da web em Markdown limpo
  • Durante a conversão, é possível baixar imagens e incluir links para imagens locais no resultado

Opções de conversão

  • Organização focada no conteúdo

    • A opção Remove non-content elements remove elementos que não fazem parte do conteúdo
  • Processamento de imagens

    • A opção Download images locally and link them salva as imagens localmente e cria os links
  • Aplicação do GPT Filter

    • A opção Apply GPT Filter on Markdown permite aplicar o GPT Filter ao resultado em Markdown

1 comentários

 
GN⁺ 2024-04-15
Opiniões no Hacker News
  • Há três problemas diferentes em transformar um site em Markdown: capturar todo o conteúdo da página sem deixar nada de fora, remover anúncios e conteúdo complementar, e obter o layout e a formatação de seções corretos
    Para extração precisa de conteúdo e formatação, soluções baseadas em Trafilatura, Newspaper4k e python-readability são as que funcionam melhor por padrão; para coleta completa, uma combinação de serviços de scraping com Selenium costuma se encaixar bem
    Fico curioso para saber o que esta ferramenta faz de diferente ou melhor. Essa área ficou meio estagnada por um tempo, então gostaria de ouvir o que foi aprendido

    • Especialmente em ambientes sem runtime JavaScript, ou onde não se quer usá-lo, fazer scraping minucioso é difícil
      Na extração de conteúdo, a abordagem da biblioteca da Postlight era bem limpa. Ela atribui uma pontuação a cada nó HTML com heurísticas como comprimento do texto, densidade de links e classes CSS, e escolhe o nó com a pontuação mais alta. Cheguei a portá-la para Swift enquanto criava um app pessoal de leitura posterior
      https://github.com/postlight/parser
    • Meu scraper de artigos hoje usa Playwright com um bloqueador de anúncios, roda o readability da Mozilla na página, e então um LLM verifica o resultado
      Se a verificação falha, o fluxo é recortar o contexto HTML da página inteira, converter para Markdown com Pandoc, e então o LLM extrai o corpo do texto a partir do Markdown
  • Vercel, hein; agora, se vier muito tráfego, é bom ficar de olho na fatura. Espero que você não esteja usando exatamente do jeito que a Vercel incentiva a continuar usando

    • É meio amargo ver a documentação, no geral, induzindo esse uso. Às vezes só um WebP já é suficiente
      Como no meme do ônibus: os felizes são o usuário e a Vercel, e o triste é a carteira
      Claro, a exceção é quando você precisa de escalonamento e redução dinâmicos
    • Na prática, aguentou bem e o custo foi desprezível
      Não fiz nada específico para lidar com o tráfego do HN; era só um app Next.js básico
  • Oferecer download de imagens e filtragem baseada em GPT é uma boa ideia
    Fiz uma ferramenta parecida no ano passado, mas ela não tem esses recursos: https://url2text.com/
    A UI pode ser lenta, mas dá para ver exemplos de saída na página inicial
    A API por trás é a API de screenshots de sites da Urlbox, que tem desempenho muito melhor quando usada diretamente. Você pode solicitar Markdown de uma só vez junto com HTML renderizado por JavaScript, metadados e screenshots: https://urlbox.com/extracting-text
    Também é possível salvar os resultados diretamente em um armazenamento compatível com S3: https://urlbox.com/s3
    Ou recebê-los via webhooks: https://urlbox.com/webhooks
    Em um projeto paralelo, estou fazendo mais de 1 milhão de renderizações por mês com o recurso de Markdown da Urlbox, e esse tipo de Markdown é muito melhor para usar em embeddings e prompts
    Para fazer scraping de um site inteiro dessa forma, também vale conferir a nova ferramenta do dctanner: https://usescraper.com/

    • Sou o fundador do https://usescraper.com. Agora também há uma opção de scraping de URL única: https://docs.usescraper.com/api-reference/scraper/scrape
      Custa US$ 0,001 por página e usa um navegador Chrome headless. Os resultados são rápidos e você paga apenas pelo que usar
    • Parece bom, mas o url2text não parece ter API, e o urlbox não parece ter uma opção para pular screenshots quando se quer apenas texto
      Se você só precisa de texto, parece bem caro
  • Quando um site mostra uma mensagem de cookies, esta ferramenta parece travar ali e não consegue parsear o conteúdo real
    Por exemplo, ao inserir https://www.cnbc.com/, ela gerou em Markdown apenas a mensagem de cookies e o texto jurídico ao redor

    • Contornar esse tipo de coisa não é fácil, mas pode funcionar assim: https://url2text.com/u/wYVake
      Tive sorte de poder construir em cima de uma API madura que já lida com muitos casos de borda surgidos em vários tipos de renderização de páginas
  • Apenas htmltidy e a conversão HTML→Markdown do Pandoc já eram úteis o suficiente
    http://www.html-tidy.org/
    https://pandoc.org/

    • Nunca tinha ouvido falar do tidy, mas parece promissor
      Fico tentado e, ao mesmo tempo, com medo de passar todo o HTML do template final por ele para encontrar estruturas inválidas restantes. Dependendo de quão estruturados forem os resultados das correções, talvez dê até para transformar isso em uma suíte de testes
  • Eu também criei algo muito parecido, o smort.io. Se você colocar smort.io/ antes de qualquer URL de artigo, fica fácil editar, anotar e compartilhar
    Também funciona com artigos do ArXiv
    O post Show HN do Smort está aqui: https://news.ycombinator.com/item?id=30673502

  • Testei em uma página de marketing complexa e ele lidou muito bem
    Se puder compartilhar, fico curioso para saber quanta carga isso coloca no host. Quero entender se dá para manter de graça por muito tempo ou se, no fim, a eficiência de custo vai ficar ruim

    • Como ele sobe uma instância headless do Chrome, é um pouco pesado. Pretendo analisar otimizações nessa parte
      Fora isso, o GPT-4 é caro, mas até agora o custo tem sido desprezível, então estou otimista. Acho que dá para manter por bastante tempo
  • É um daqueles casos em que IA não é necessária. Há algoritmos que funcionam muito bem para extrair conteúdo de páginas, e uma das implementações é https://github.com/buriy/python-readability

    • Quando comparei ferramentas de remoção de boilerplate alguns anos atrás, lembro que o jusText dava os melhores resultados no estado padrão
      Também usei readability e algumas outras bibliotecas. Tenho curiosidade de saber qual é o estado da arte hoje
    • Aqui, a IA é opcional. Estou usando readability para limpar o HTML antes de convertê-lo para Markdown
    • Da última vez que usei readability, ele funcionava bem para artigos, mas sofria com outros tipos de página
      Acabava removendo muito mais conteúdo do que eu queria
    • Fico curioso para saber como seria possível conseguir a mesma coisa aqui só com essa ferramenta, sem IA
    • Sinceramente, eu esperava que fosse principalmente magia negra, mas o núcleo do projeto parece um conjunto de regexes certamente construído com muito esforço. Legal
  • O sempre incrível Pandoc (https://pandoc.org/) faz esse tipo de coisa muito bem. Na prática, também suporta quase todos os outros formatos de documento

    • Concordo. Pandoc é uma das ferramentas mais úteis que existem e, mesmo assim, quase nunca é mencionada
      É incrível, fácil de usar e funciona bem. Novas ferramentas nessa área aparecem com frequência, mas acho que, para me fazer usar algo que não seja o Pandoc, teria que haver algum recurso realmente único e convincente, ou uma otimização muito forte para um caso de uso específico
  • Legal. Eu gostaria que houvesse uma extensão de navegador que aplicasse isso a todas as páginas que leio e salvasse em algum lugar