snscrape é um raspador para serviços de redes sociais (SNS). Ele coleta itens como perfis de usuários, hashtags ou pesquisas e retorna os itens descobertos, por exemplo, as postagens relevantes.
Os seguintes serviços são atualmente suportados:
snscrape requer Python 3.8 ou superior. As dependências do pacote Python são instaladas automaticamente quando você instala o snscrape.
Observe que uma das dependências, lxml, também requer a instalação de libxml2 e libxslt.
pip3 install snscrape
Se você quiser usar a versão de desenvolvimento:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
A sintaxe genérica da CLI do snscrape é:
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
e snscrape SCRAPER-NAME --help
fornecem detalhes sobre as opções e argumentos. snscrape --help
também lista todos os scrapers disponíveis.
A saída padrão da CLI é a URL de cada resultado.
Algumas opções globais dignas de nota são:
--jsonl
para obter saída como JSONL. Isso inclui todas as informações extraídas pelo snscrape (por exemplo, conteúdo da mensagem, data e hora, imagens; os detalhes variam de acordo com o scraper).--max-results NUMBER
para retornar apenas os primeiros NUMBER
resultados.--with-entity
para obter um item da entidade que está sendo extraída, por exemplo, o usuário ou canal. Isso não é compatível com todos os scrapers. (Você pode usar isso junto com --max-results 0
para buscar apenas as informações da entidade.) Colete todos os tweets de Jason Scott (@textfiles):
snscrape twitter-user textfiles
Geralmente é útil redirecionar a saída para um arquivo para processamento posterior, por exemplo, no bash usando o nome de arquivo twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
Para obter os 100 tweets mais recentes com a hashtag #archiveteam:
snscrape --max-results 100 twitter-hashtag archiveteam
Também é possível usar snscrape como uma biblioteca em Python, mas atualmente isso não está documentado.
Se você descobrir um problema com o snscrape, relate-o em https://github.com/JustAnotherArchivist/snscrape/issues. Se você usar a CLI, execute snscrape com -vv
e inclua a saída do log no problema. Se você usar o snscrape como um módulo, habilite o registro em nível de depuração usando import logging; logging.basicConfig(level = logging.DEBUG)
(antes de usar o snscrape) e inclua a saída do log no problema.
Em alguns casos, a depuração pode exigir mais informações do que as disponíveis no log. A CLI tem uma opção --dump-locals
que permite despejar todas as variáveis locais dentro do snscrape com base em mensagens de log importantes (em vez de, por padrão, apenas em falhas). Observe que os arquivos de despejo podem conter informações confidenciais em alguns casos e podem ser potencialmente usados para identificá-lo (por exemplo, se o serviço incluir seu endereço IP em sua resposta). Se você preferir organizar uma transferência de arquivo em particular, basta mencionar isso na edição.
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a Licença Pública Geral GNU para mais detalhes.
Você deverá ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Caso contrário, consulte https://www.gnu.org/licenses/.