Skip to content

Instantly share code, notes, and snippets.

@w1lldantas
Last active September 18, 2024 15:59
Show Gist options
  • Save w1lldantas/b4f45a676167199ecb0637d0af795cd8 to your computer and use it in GitHub Desktop.
Save w1lldantas/b4f45a676167199ecb0637d0af795cd8 to your computer and use it in GitHub Desktop.
Capturando seus seguidores do twitter/x

Capturando seus seguidores do twitter/x

Proposito: Capturar os seguidores de um perfil do twitter e exibir no console.

Se voce seguir muitas pessoas, é interessante q scroll até o final da página para carregar todos os seguidores. Tem o script 2 que ajuda a fazer isto, mas depende da velocidade de download dos dados, recomento que faça manualmente.

Passo a passo

  1. Acesse o perfil do twitter que deseja capturar os seguidores.

https://x.com/seu-usuario/following

  1. Abra o console do navegador.

  2. Execute o código abaixo.

const classWithContent = 'css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3';
const contentsWithAt = [];

const getContent = () => {
  const elements = document.querySelectorAll(`.${classWithContent.replace(/\s+/g, '.')}`);
  if (elements.length > 0) {
    elements.forEach(element => {
      const text = element.innerText.trim();
      if (text.startsWith('@')) {
        contentsWithAt.push(text);
      }
    });
    console.log(contentsWithAt);
  } else {
    console.log('Nenhum elemento encontrado com a classe especificada.');
  }
};
  1. Pronto, os seguidores serão exibidos no console. Basta copiar e colar onde desejar.

Exemplo de Saída do script

[
  "@seguidor1",
  "@seguidor2",
]

Segue script completo abaixo.

const classWithContent = 'css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3';
const contentsWithAt = [];
const getContent = () => {
const elements = document.querySelectorAll(`.${classWithContent.replace(/\s+/g, '.')}`);
if (elements.length > 0) {
elements.forEach(element => {
const text = element.innerText.trim();
if (text.startsWith('@')) {
contentsWithAt.push(text);
}
});
console.log(contentsWithAt);
} else {
console.log('Nenhum elemento encontrado com a classe especificada.');
}
};
const isAtBottom = () => {
return window.innerHeight + window.scrollY >= document.body.scrollHeight;
};
const scrollAndCapture = async () => {
return new Promise((resolve) => {
const interval = setInterval(() => {
window.scrollBy(0, window.innerHeight);
if (isAtBottom()) {
clearInterval(interval);
getContent(); // Captura o conteúdo após o scroll
resolve();
} else {
getContent(); // Captura o conteúdo após cada scroll
}
}, 1000); // Intervalo de 1 segundo
});
};
const removeDuplicates = (array) => {
return [...new Set(array)];
};
// Função principal para rolar a página e capturar os usuários
const startScrollAndCapture = async () => {
console.log('Iniciando o scroll...');
await scrollAndCapture(); // Espera até que o scroll complete
const uniqueContents = removeDuplicates(contentsWithAt); // Remove duplicados
console.log('Scroll completo. Todos os usuários foram capturados.');
console.log('Usuários finais:', uniqueContents);
};
// Inicia o processo
startScrollAndCapture();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment