Ir para o conteúdo

O guia completo para raspar postagens do Facebook

As redes sociais contêm uma mina de ouro de dados públicos valiosos para quem sabe como extraí-los. Este guia definitivo com mais de 4000 palavras ensinará como raspar postagens do Facebook com eficiência usando ferramentas e técnicas adequadas.

A crescente importância do Web Scraping

Web scraping refere-se à extração automatizada de dados de sites por meio de scripts e ferramentas de software. De acordo com a Insider Intelligence, mais de 80% das organizações agora utilizam web scraping de alguma forma para fins de business intelligence.

À medida que a quantidade de dados valiosos publicados online continua a crescer exponencialmente, o web scraping tornou-se vital para aproveitar esses dados. Os varejistas coletam listas de produtos, as empresas financeiras coletam transcrições de chamadas de lucros, os recrutadores coletam ofertas de emprego e as inscrições continuam indefinidamente.

A indústria de web scraping está projetada para crescer mais de 20% CAGR, atingindo US$ 13.9 bilhões até 2026, de acordo com a Meticulous Research. Claramente, o web scraping está se tornando essencial para os negócios competitivos.

Muitos sites proíbem web scraping em seus Termos de Serviço (ToS). O Facebook não é exceção. Isso levanta questões sobre a legalidade do web scraping.

A boa notícia é que nos Estados Unidos, onde o Facebook está sediado, várias decisões judiciais afirmaram que os dados em sites acessíveis ao público são um jogo justo para extração e que as proibições nos ToS não são contratos legalmente executáveis.

Por exemplo, na decisão HiQ Labs vs. LinkedIn de 2020, o Tribunal de Apelações do 9º Circuito manteve o direito da HiQ de copiar páginas públicas do LinkedIn, declarando:

“Concluímos que a HiQ levantou uma questão séria sobre se as partes celebraram um contrato executável que proibiria a HiQ de acessar os dados publicamente disponíveis do LinkedIn.”

Contanto que você acesse dados por meio de interfaces públicas como um usuário comum, sem contornar barreiras técnicas, o web scraping parece ser legal de acordo com a jurisprudência dos EUA.

Dito isto, a ética também importa. Aqui estão algumas práticas recomendadas a serem seguidas:

  • Raspe apenas dados públicos
  • Não interrompa o trânsito normal
  • Respeite as regras do robots.txt
  • Use proxies e limite taxas
  • Fontes de crédito
  • Exclua dados quando não forem mais necessários

A posição do Facebook sobre web scraping

Os Termos de Serviço do Facebook declaram:

Você não coletará conteúdo ou informações dos usuários, nem acessará o Facebook de outra forma, usando meios automatizados (como bots de coleta, robôs, spiders ou scrapers) sem nossa permissão prévia.

Isso significa que eles desencorajam a raspagem. No entanto, suas principais preocupações parecem girar em torno de:

  • Extraindo dados privados do usuário
  • Contas/bots falsos que abusam da plataforma
  • Interrompendo a infraestrutura do Facebook

A extração de conteúdo de páginas públicas de forma não invasiva não parece ser um problema baseado em precedentes públicos. Muitas ferramentas e serviços de terceiros permitem especificamente a raspagem do Facebook.

O Facebook deixa isso em aberto, exigindo “permissão prévia” para raspar bots. Mas hoje em dia a permissão não é concedida de forma activa e transparente.

A melhor abordagem é agir de forma ética e responsável, de acordo com as melhores práticas descritas anteriormente. Supondo que você se limite a páginas e dados públicos, extrair quantias modestas não deve causar preocupação. Mas é impossível dar garantias definitivas quando as políticas de uma plataforma são vagas.

Agora vamos ver como realmente copiar postagens do Facebook…

Raspando o Facebook com navegadores sem cabeça

A abordagem mais direta é controlar diretamente um navegador por meio de scripts. Bibliotecas modernas de navegadores sem cabeça, como Puppeteer e Playwright, fornecem acesso API à funcionalidade do navegador.

Vamos examinar um exemplo usando Marionetista – uma das escolhas mais populares devido ao seu equilíbrio entre poder e simplicidade.

Primeiro precisamos instalar o Puppeteer:

npm install puppeteer  

Então podemos escrever um script como este:

// puppeteer-scraper.js

const puppeteer = require(‘puppeteer‘);

(async () => {

  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto(‘https://www.facebook.com/nasa/‘);

  // Wait for posts to load
  await page.waitForSelector(‘.userContentWrapper‘); 

  // Extract post data
  const posts = await page.$$eval(‘.userContentWrapper .permalinkPost‘, posts => {

    return posts.map(post => {

      return {

        text: post.querySelector(‘.userContent‘)?.textContent ?? ‘‘,  
        date: post.querySelector(‘.timestampContent‘)?.textContent ?? ‘‘,
        reactions: post.querySelector(‘.likeCount‘)?.textContent ?? ‘‘,
        comments: post.querySelector(‘.commentCount‘)?.textContent ?? ‘‘,
        shares: post.querySelector(‘.shareCount‘)?.textContent ?? ‘‘

      };

    });

  });

  console.log(posts);

  await browser.close();

})();

Aqui está o que está acontecendo:

  1. Inicie um navegador Chrome sem cabeça com o Puppeteer.

  2. Abra a página da NASA no Facebook.

  3. Aguarde o carregamento das postagens iniciais.

  4. Use page.$$eval para avaliar todos os elementos que correspondem ao .userContentWrapper .permalinkPost seletor.

  5. Forneça uma função de retorno de chamada que mapeie cada elemento da postagem para os dados que desejamos – texto, data, reações, etc.

  6. Imprima a matriz de postagens extraídas.

Quando executado, este script produzirá uma matriz de objetos contendo texto, data e dados de engajamento para cada postagem copiada.

Agora podemos salvar facilmente as postagens copiadas como JSON:

const fs = require(‘fs‘);

// ...scrape posts

fs.writeFileSync(‘nasa-posts.json‘, JSON.stringify(posts, null, 2)); 

Ou poderíamos anexar cada postagem como uma linha em um arquivo CSV. As possibilidades são infinitas!

Comparando o titereiro ao dramaturgo

Marionetista é ótimo, mas Dramaturgo é outra excelente opção de navegador sem cabeça com algumas vantagens exclusivas:

  • Suporta Firefox e WebKit além do Chromium.
  • Tempos de carregamento de página um pouco mais rápidos.
  • Melhor suporte integrado para paginação, iframes e pop-ups.
  • UI para visualizar dados extraídos.
    -Sintaxe assíncrona/aguardada mais suave.

Por exemplo, aqui está o mesmo script no Playwright:

const { chromium } = require(‘playwright‘); 

(async () => {

  const browser = await chromium.launch();

  const context = await browser.newContext();

  const page = await context.newPage();

  await page.goto(‘https://www.facebook.com/nasa/‘);

  const posts = await page.$$eval(‘.userContentWrapper .permalinkPost‘, posts => {

    // Map elements to data  

  });

  await browser.close();

})();

O uso do dramaturgo é basicamente idêntico. Ambas as bibliotecas são excelentes opções dependendo de suas preferências.

Agora vamos ver como usar proxies para uma raspagem mais eficaz…

Raspando Proxies

Para raspar o Facebook de forma eficiente em escala, é altamente recomendável usar proxies para distribuir solicitações e evitar detecção.

Proxies residenciais funcionam melhor, pois fornecem IPs reais de residências/dispositivos móveis para resultados idênticos aos de usuários normais. Proxies Datacenter são mais baratos, mas têm maior probabilidade de serem detectados e bloqueados.

Veja como configurar o Puppeteer para usar proxies residenciais:

const puppeteer = require(‘puppeteer-extra‘);
const pluginStealth = require(‘puppeteer-extra-plugin-stealth‘);

// Enable stealth plugin  
puppeteer.use(pluginStealth());

(async () => {

  const browser = await puppeteer.launch({
    headless: true, 
    args: [
      ‘--proxy-server=http://USER:PASS@PROXY:PORT‘ 
    ]
  });

// ...rest of script

})();

Simplesmente passamos o --proxy-server argumento com nossas credenciais de provedor de proxy. Isso roteia todo o tráfego através do IP do proxy.

A puppeteer-extra-plugin-stealth O módulo aplica várias técnicas para evitar a detecção de bots ao passar por proxies.

Os principais serviços de proxy residencial incluem:

  • Smartproxy – Planos a partir de US$ 75/mês para 40 GB de tráfego. API disponível.

  • GeoSurf – Planos a partir de US$ 50/mês. Integra-se perfeitamente com o Puppeteer.

  • Luminati – Os planos começam em US$ 500/mês. Grande conjunto de IPs.

  • Oxylabs – Planos a partir de 100€/mês. API oferecida.

Os proxies residenciais custam de 3 a 5 centavos por GB, muito mais caros do que os proxies de datacenter, mas valem a pena para uma raspagem séria.

Alterne os IPs do proxy com frequência para maximizar os resultados e minimizar a detecção. Transfira essa carga de gerenciamento de proxy para o provedor de serviços.

Raspando o Facebook com navegadores reais

Em alguns casos, executar scripts de scraping 24 horas por dia, 7 dias por semana no lado do servidor pode não ser ideal ou viável.

Extraindo de um navegador real no seu próprio computador é uma alternativa. Reduz a complexidade para pequenos raspadores.

Ferramentas como Octoparse, Analisar Hub e Importar.io oferecem extensões de navegador para extrair conteúdo enquanto você navega naturalmente no Facebook.

Por exemplo, aqui estão as etapas para raspar com o Octoparse:

  1. Instale a extensão do navegador.

  2. Navegue até a página de destino.

  3. Clique no ícone da extensão.

  4. Selecione os elementos a serem raspados.

  5. Extraia dados.

A raspagem do navegador é fácil de configurar, mas menos flexível do que scripts que fornecem controle programático total. Considere todas as suas opções com base no seu caso de uso.

Raspando o Facebook com ferramentas e APIs

Além dos scripts, muitas ferramentas são criadas especificamente para raspar o Facebook:

APIs de raspador como Dexi.io, ScrapeHerói e SerpApiGenericName cuide da raspagem para você para que você possa se concentrar no consumo dos dados. Por exemplo:

import dexi 

data = dexi.FacebookPage(
  page_urls=[‘https://www.facebook.com/nasa‘]
).get_posts()

print(data)

Complementos do Planilhas Google como ImportarFacebook e Relação social permitem que você extraia dados do Facebook diretamente para o Planilhas Google para análise instantânea.

A API do Facebook fornece acesso programático oficial, mas é muito limitado em comparação com a extração, pois restringe a quantidade de dados que você pode extrair.

Extensões de navegador DIY como Raspador do Facebook tornar a raspagem acessível sem codificação.

Avalie as opções com base no seu orçamento, conhecimento técnico e caso de uso.

Quais dados você pode realmente extrair do Facebook?

Embora tenhamos nos concentrado nas postagens, muitos tipos de dados podem realmente ser extraídos do Facebook:

  • Metadados da página – Nome, categoria, contagem de seguidores etc.

  • POSTAGENS – Conteúdo do texto, data, reações, comentários.

  • Comentários – Texto do comentário, nome do comentarista, data, reações.

  • Opinões – Revise texto, imagens, classificações, nome do revisor.

  • Eventos – Título, descrição, localização, programação, informações do participante.

  • Grupos – Informações do grupo, lista de membros, postagens, comentários.

  • Listagens de mercado – Título, descrição, preço, imagens, vendedor.

  • anúncios – Criativo do anúncio, texto, imagens, critérios de segmentação.

No entanto, concentre-se apenas no que você realmente precisa. Nunca copie dados pessoais do usuário – apenas páginas e postagens públicas.

Raspar o Facebook com responsabilidade

O Facebook fornece uma abundância de dados públicos. Mas deve ser colhido com responsabilidade:

  • Respeite o robots.txt: O robots.txt do Facebook permite a raspagem de páginas e postagens. Mas obedeça a quaisquer caminhos bloqueados.

  • Limitar frequência de solicitação: Não bombardeie páginas com centenas de solicitações por segundo. Seja razoável.

  • Use proxies: Gire IPs para distribuir a carga. Os proxies residenciais funcionam melhor.

  • Raspe apenas dados públicos: nunca segmente perfis pessoais ou informações privadas.

  • Fontes de crédito: Se republicar conteúdo copiado, dê os devidos créditos.

  • Exclua dados desnecessários: remova dados copiados que não são mais necessários.

  • Siga a ética: colete apenas dados que você tenha interesse legítimo em usar ou analisar.

A raspagem nunca deve interromper a infraestrutura do Facebook ou comprometer a privacidade do usuário. Estamos apenas extraindo público dados que o Facebook já expôs.

Raspando o Facebook: principais vantagens

  • Web scraping pode extrair dados públicos valiosos do Facebook para uso comercial.
  • Concentre-se em copiar páginas e postagens públicas, não em perfis pessoais.
  • Cumpra as melhores práticas de raspagem responsável.
  • Use ferramentas como Puppeteer, Playwright, APIs de scraper e muito mais.
  • Gire os proxies residenciais para evitar a detecção.
  • Reúna apenas dados que você possa usar legitimamente.
  • Exclua os dados copiados quando não forem mais necessários.

Isso conclui meu guia de mais de 4000 palavras para eliminar postagens do Facebook de maneira eficaz e ética. Eu espero que você tenha achado isso útil. Entre em contato se tiver outras dúvidas.

Junte-se à conversa

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *