Aranha Weibo
Este programa pode rastrear continuamente os dados de um ou mais usuários do Sina Weibo (como Hu Ge, Dilraba, Guo Biting) e gravar as informações do resultado em um arquivo ou banco de dados . As informações escritas incluem quase todos os dados do Weibo do usuário, incluindo duas categorias: informações do usuário e informações do Weibo . Como há muito conteúdo, não entrarei em detalhes aqui. Para detalhes, consulte os campos obtidos. Se você precisar apenas de informações do usuário, poderá definir a função para rastrear apenas as informações do usuário do Weibo. Este programa precisa definir cookies para obter acesso ao Weibo. Como obter cookies será explicado mais tarde. Se não quiser definir cookies, você pode usar a versão sem cookies, que possui funções semelhantes.
Os resultados do rastreamento podem ser gravados em arquivos e bancos de dados. Os tipos específicos de arquivos de gravação são os seguintes:
- arquivo txt (padrão)
- arquivo csv (padrão)
- arquivo json (opcional)
- Banco de dados MySQL (opcional)
- Banco de dados MongoDB (opcional)
- Banco de dados SQLite (opcional)
Ele também suporta o download de fotos e vídeos do Weibo. Os arquivos específicos para download são os seguintes:
- Imagem original do Weibo original (opcional)
- Publique novamente a imagem original do Weibo (opcional)
- Vídeo original no Weibo (opcional)
- Reposte vídeos no Weibo (opcional)
- Vídeos no Weibo Live Photo original (exclusivo para a versão sem cookies)
- Reposte vídeos do Weibo Live Photo (exclusivo para a versão sem cookies)
Lista de conteúdos
[TOC]
- Aranha Weibo
- Lista de conteúdos
- Os campos obtidos
- Informações do usuário
- Informações do Weibo
- Exemplo
- Ambiente operacional
- Instruções de uso
- 0.Versão
- 1. Programa de instalação
- Instalação do código fonte
- instalação de pip
- 2. Configurações do programa
- 3. Execute o programa
- Programa de personalização (opcional)
- Rastrear automaticamente o Weibo regularmente (opcional)
- Como conseguir biscoitos
- Como obter user_id
- Perguntas frequentes
- pesquisa acadêmica
- Projetos relacionados
- contribuir
- Contribuinte
- Coisas a serem observadas
Os campos obtidos
Esta seção é uma descrição das informações do campo rastreado. Para diferenciá-lo da versão sem cookies, as informações rastreadas por ambos estão listadas abaixo. Se a informação for exclusiva da versão sem cookies, ela será marcada como sem cookies, e a informação que não estiver marcada será comum a ambas.
Informações do usuário
- ID do usuário: ID do usuário do Weibo, como "1669879400". Na verdade, este campo é um campo conhecido.
- Apelido: apelido do usuário, como "Querido-Dilraba"
- Gênero: gênero do usuário do Weibo
- Aniversário: data de nascimento do usuário
- Localização: localização do usuário
- Experiência de aprendizagem: o nome e o horário da escola em que o usuário frequentava a escola
- Experiência profissional: nome e horário da empresa do usuário
- Crédito Sunshine (versão sem cookies): Crédito Sunshine do usuário
- Hora de registro no Weibo (versão sem cookies): Data de registro do usuário no Weibo
- Número de Weibos: Número de todos os Weibos do usuário (Weibos retuitados + Weibos originais)
- Número de seguidores: o número de postagens do Weibo que o usuário segue
- Número de fãs: o número de fãs do usuário
- Introdução: perfil do usuário
- Endereço da página inicial (versão sem cookies): URL da página inicial da versão móvel do Weibo
- URL do avatar (versão sem cookies): URL do avatar do usuário
- URL do avatar de alta definição (versão sem cookies): URL do avatar de alta definição do usuário
- Nível Weibo (versão sem cookies): nível Weibo do usuário
- Nível de associação (versão sem cookies): nível de usuário membro do Weibo, o nível para usuários comuns é 0
- Se deve ser autenticado (versão sem cookies): se o usuário está autenticado, um tipo booleano
- Tipo de autenticação (versão sem cookies): Tipo de autenticação do usuário, como autenticação pessoal, autenticação empresarial, autenticação governamental, etc.
- Informações de autenticação: exclusivas para usuários autenticados, informações de autenticação exibidas na coluna de informações do usuário
Informações do Weibo
- ID do Weibo: logotipo exclusivo do Weibo
- Conteúdo do Weibo: texto do Weibo
- URL do artigo do título: o URL do artigo do título no Weibo. Se não houver nenhum artigo do título no Weibo, o valor é ''.
- URL da imagem original: A imagem original do Weibo e o URL da imagem no motivo do encaminhamento do Weibo. Se houver várias imagens em uma postagem do Weibo, cada URL será separada por uma vírgula em inglês. Nenhum"
- URL do vídeo: o URL do vídeo no Weibo. Se não houver vídeo no Weibo, o valor será "Nenhum".
- Local de postagem no Weibo: Local de postagem no Weibo
- Horário de publicação do Weibo: o horário em que o Weibo foi publicado, com precisão de minuto
- Número de curtidas: Número de curtidas no Weibo
- Número de retuítes: o número de retuítes no Weibo
- Número de comentários: o número de comentários no Weibo
- Ferramentas de publicação Weibo: ferramentas de publicação Weibo, como cliente iPhone, HUAWEI Mate 20 Pro, etc.
- Arquivo de resultado: salvo na pasta com o nome do apelido do usuário na pasta weibo do diretório atual, na forma de "user_id.csv" e "user_id.txt"
- Imagens do Weibo: as imagens do Weibo original e as imagens dos motivos de encaminhamento no Weibo são salvas na pasta img na pasta com o nome do apelido do usuário.
- Vídeos do Weibo: vídeos originais no Weibo, salvos na pasta de vídeos na pasta com o nome do apelido do usuário
- Lance do Weibo (versão sem cookies): exclusivo da versão sem cookies, tem o mesmo valor do ID do Weibo neste programa
- Tópico (versão sem cookies): tópico do Weibo, ou seja, o conteúdo entre dois #s. Se houver vários tópicos, cada URL será separado por uma vírgula em inglês.
- @user (versão sem cookies): Weibo @ user, se houver vários @ usuários, cada URL é separado por uma vírgula em inglês, caso contrário, o valor é ''
- Weibo original (versão sem cookies): exclusivo do Weibo encaminhado. É o Weibo encaminhado no Weibo encaminhado. Ele é armazenado em forma de dicionário e contém todo o conteúdo das informações do Weibo acima, como ID do Weibo, conteúdo do Weibo, etc. .
Exemplo
Se quiser saber os resultados específicos da execução do programa, você pode visualizar o documento de amostra, que apresenta um exemplo de rastreamento do Weibo de Dilireba e anexa algumas capturas de tela dos arquivos de resultados.
Ambiente operacional
- Linguagem de desenvolvimento: python2/python3
- Sistema: Windows/Linux/macOS
Instruções de uso
0.Versão
Existem duas versões deste programa. A que você vê agora é a versão python3 e a outra é a versão python2. A versão python2 está localizada no branch python2. Atualmente, estamos desenvolvendo principalmente a versão python3, incluindo desenvolvimento de novos recursos e correções de bugs. A versão python2 suporta apenas correções de bugs; Recomenda-se que os usuários do python3 usem a versão atual e os usuários do python2 usem a versão python2. Este manual de instruções é para a versão python3.
1. Programa de instalação
Este programa fornece dois métodos de instalação, um é a instalação do código-fonte e o outro é a instalação do pip , ambos com exatamente as mesmas funções. Se precisar modificar o código-fonte, é recomendável usar o primeiro método, caso contrário você pode escolher qualquer método de instalação.
Instalação do código fonte
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
instalação de pip
$ python3 -m pip install weibo-spider
2. Configurações do programa
Para saber mais sobre as configurações do programa, revise a documentação de configurações do programa.
3. Execute o programa
Os usuários que instalam o código-fonte podem executar os seguintes comandos no diretório weiboSpider. Os usuários que instalam o pip podem executar os seguintes comandos em qualquer diretório com permissões de gravação.
$ python3 -m weibo_spider
Quando executado pela primeira vez, o arquivo de configuração config.json será criado automaticamente no diretório atual. Após a configuração, execute o mesmo comando para obter o Weibo.
Se você já possui um arquivo config.json, também pode configurar o caminho config.json através do parâmetro config_path e executar o programa.
$ python3 -m weibo_spider --config_path= " config.json "
Se você deseja especificar o caminho para salvar o arquivo (csv, txt, json, imagem, vídeo), você pode defini-lo através do parâmetro output_dir. Se quiser salvar o arquivo no diretório /home/weibo/, você pode executar o seguinte comando:
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
Se você quiser inserir user_id por meio da linha de comando, você pode usar o parâmetro u. Você pode inserir um ou mais user_ids. Cada user_id é separado por uma vírgula. Se houver user_ids duplicados entre esses user_ids, o programa removerá automaticamente as duplicatas. A linha de comando é a seguinte:
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
O programa obterá os usuários do Weibo cujos user_ids são 1669879400 e 1223178222. Explicaremos como obter o user_id posteriormente. Todos os user_ids neste método são definidos usando since_date e end_date em config.json, e o intervalo de tempo de rastreamento pode ser controlado modificando seus valores. Se user_id_list em config.json for um caminho de arquivo, o user_id em cada linha de comando será salvo automaticamente no arquivo e atualizado automaticamente desde_date; se não for um caminho, o user_id será salvo em user_id_list.txt no diretório atual; e atualizado automaticamente desde_date, se user_id_list.txt não existir no diretório atual, o programa irá criá-lo automaticamente.
Programa de personalização (opcional)
Esta seção é opcional e pode ser ignorada se você não precisar personalizar o programa ou adicionar novos recursos.
O código principal deste programa está localizado no arquivo weibo_spider.py. O corpo principal do programa é uma classe Spider. Todas as funções acima são implementadas chamando a classe Spider na função principal.
config = get_config ()
wb = Spider ( config )
wb . start () # 爬取微博信息
Os usuários podem chamar ou modificar a classe Spider de acordo com suas necessidades. Ao executar este programa, podemos obter muitas informações.
Clique para ver detalhes
- wb.user['apelido']: Apelido do usuário;
- wb.user['gender']: gênero do usuário;
- wb.user['location']: localização do usuário;
- wb.user['birthday']: data de nascimento do usuário;
- wb.user['descrição']: Perfil do usuário;
- wb.user['verified_reason']: Autenticação do usuário;
- wb.user['talent']: rótulo do usuário;
- wb.user['education']: experiência de aprendizagem do usuário;
- wb.user['work']: experiência de trabalho do usuário;
- wb.user['weibo_num']: número do Weibo;
- wb.user['following']: Número de seguidores;
- wb.user['followers']: número de fãs;
wb.weibo : Exceto pelas informações acima, wb.weibo contém todas as informações rastreadas do Weibo, como ID do Weibo , texto do Weibo , URL da imagem original , local de publicação , horário de publicação , ferramenta de publicação , número de curtidas , número de retuítes , número de comentários , etc Se você estiver rastreando todo o Weibo (original + encaminhado), além das informações acima, também inclui o URL da imagem original do Weibo encaminhado , seja um Weibo original, etc. wb.weibo é uma lista que contém todas as informações rastreadas do Weibo. wb.weibo[0] é o primeiro Weibo rastreado, wb.weibo[1] é o segundo Weibo rastreado e assim por diante. Quando filter=1, wb.weibo[0] é o primeiro Weibo original rastreado e assim por diante. wb.weibo[0]['id'] é o id do primeiro Weibo, wb.weibo[0]['content'] é o texto do primeiro Weibo, wb.weibo[0]['publish_time' ] é o horário de publicação da primeira postagem no Weibo, e há muitas outras informações que não entrarei em detalhes. Você pode clicar em "Detalhes" abaixo para ver o uso específico.
Detalhes
Se o usuário alvo do Weibo existir no Weibo, então:
- id: armazena o ID do Weibo. Por exemplo, wb.weibo[0]['id'] é o id do Weibo mais recente;
- conteúdo: armazena o texto principal do Weibo. Por exemplo, wb.weibo[0]['content'] é o texto da última postagem do Weibo;
- article_url: armazena a URL do artigo principal no Weibo. Por exemplo, wb.weibo[0]['article_url'] é o URL do artigo de título mais recente do Weibo. Se não houver nenhum artigo de título no Weibo, o valor é '';
- original_pictures: armazena o URL da imagem original do Weibo original e o URL da imagem no motivo do encaminhamento do Weibo. Por exemplo, wb.weibo[0]['original_pictures'] é o URL da imagem original do Weibo mais recente. Se o Weibo tiver várias imagens, vários URLs serão armazenados, separados por vírgulas em inglês. o valor é "Nenhum";
- retweet_pictures: armazena os URLs das imagens originais no Weibo retweetado. Quando o Weibo mais recente é um Weibo original ou um Weibo encaminhado sem imagens, o valor é "nenhum", caso contrário, é o URL da imagem do Weibo encaminhado. Se houver múltiplas imagens, serão armazenadas múltiplas URLs, separadas por vírgulas;
- publish_place: armazena o local de publicação do Weibo. Por exemplo, wb.weibo[0]['publish_place'] é o local de publicação do Weibo mais recente. Se o Weibo não tiver informações de localização, o valor será "Nenhum";
- publish_time: armazena o horário de publicação do Weibo. Por exemplo, wb.weibo[0]['publish_time'] é o horário de publicação do último Weibo;
- up_num: armazena o número de curtidas obtidas pelo Weibo. Por exemplo, wb.weibo[0]['up_num'] é o número de curtidas obtidas pela última postagem do Weibo;
- retweet_num: armazena o número de retuítes obtidos pelo Weibo. Por exemplo, wb.weibo[0]['retweet_num'] é o número de retuítes recebidos pelo último Weibo;
- comment_num: armazena o número de comentários obtidos pelo Weibo. Por exemplo, wb.weibo[0]['comment_num'] é o número de comentários recebidos pelo último Weibo;
- publish_tool: ferramenta de publicação de armazenamento para Weibo. Por exemplo, wb.weibo[0]['publish_tool'] é a ferramenta de publicação do Weibo mais recente.
Rastrear automaticamente o Weibo regularmente (opcional)
Se você deseja que o programa rastreie automaticamente a cada período de tempo e o conteúdo rastreado seja conteúdo adicionado recentemente (excluindo o Weibo que já foi obtido), marque Rastrear automaticamente o Weibo regularmente.
Como conseguir biscoitos
Para saber como obter cookies, consulte a documentação sobre cookies.
Como obter o user_id
Para saber como obter o user_id, consulte o documento user_id, que descreve como obter o user_id de um ou mais usuários do Weibo.
Perguntas frequentes
Se ocorrer um erro durante a execução do programa, você poderá visualizar a página de perguntas frequentes, que contém os problemas e soluções mais comuns. Caso o erro ocorrido não esteja no FAQ, você pode pedir ajuda enviando um problema e teremos prazer em responder para você.
pesquisa acadêmica
Este projeto obtém dados do Weibo para fornecer os dados necessários para projetos não comerciais, como escrever artigos e fazer pesquisas. Documentos de pesquisa acadêmica são projetos nos quais o programa foi utilizado em teses ou pesquisas, etc., e são exibidos com a autorização do proprietário. Comunicamos com o proprietário sobre algumas descrições relacionadas à privacidade, e a descrição apresenta apenas as partes que o proprietário permite que sejam exibidas. Se o proprietário de alguma informação concordou anteriormente em ser exibida e a escreveu no documento, mas agora não deseja exibi-la, você pode me avisar por e-mail ([email protected]) ou problema, e eu excluirei o relevante Informação. Ao mesmo tempo, amigos que usam este projeto para escrever artigos ou fazer outras pesquisas acadêmicas também podem exibir os resultados de suas pesquisas em documentos de pesquisa acadêmica.
Para sua conveniência, as entradas do bibtex para este projeto são fornecidas da seguinte forma:
@misc{weibospider2020,
author = {Lei Chen, Zhengyang Song, schaepher, minami9, bluerthanever, MKSP2015, moqimoqidea, windlively, eggachecat, mtuwei, codermino, duangan1},
title = {{Weibo Spider}},
howpublished = {url{https://github.com/dataabc/weiboSpider}},
year = {2020}
}
Projetos relacionados
- weibo-crawler - A função é exatamente a mesma deste projeto, você não pode adicionar cookies e obter mais atributos do Weibo;
- pesquisa weibo - pode obter continuamente um ou mais resultados de pesquisa por palavra-chave Weibo e gravar os resultados em um arquivo (opcional), banco de dados (opcional), etc. A chamada pesquisa por palavra-chave do Weibo significa: pesquisar por Weibo que contém palavras-chave especificadas no texto e você pode especificar o intervalo de tempo de pesquisa. Para palavras-chave muito populares, mais de 10 milhões de resultados de pesquisa podem ser obtidos em um dia e 10 milhões de resultados de pesquisa XN podem ser obtidos em N dias. Para a maioria das palavras-chave, o número de microblogs correspondentes gerados em um dia deve ser inferior a 10 milhões, então pode-se dizer que o programa pode obter todos ou quase todos os resultados de pesquisa para a maioria das palavras-chave. Além disso, este programa pode obter todas as informações dos resultados da pesquisa, e as informações do Weibo obtidas por este programa podem ser obtidas por este programa.
contribuir
Bem-vindo a contribuir com este projeto. A contribuição pode ser através do envio de código, fazendo sugestões (como novos recursos, planos de melhoria, etc.) através de problemas, ou informando-nos sobre bugs, deficiências, etc. no projeto através de problemas, consulte Contribuir para isto. projeto.
Contribuinte
Obrigado a todos os amigos que contribuíram para este projeto. Consulte a página do contribuidor para obter detalhes dos contribuidores.
Coisas a serem observadas
- O user_id não pode ser o user_id do rastreador Weibo. Porque para rastrear informações do Weibo, você deve primeiro fazer login em uma conta do Weibo. Vamos chamar esse rastreador de conta de Weibo. Quando o rastreador Weibo visita sua própria página e visita as páginas de outros usuários, o formato da página da web obtida é diferente, portanto, ele não pode rastrear suas próprias informações do Weibo. Se você deseja rastrear o conteúdo do rastreador Weibo, consulte Obtendo seu próprio Weibo; Informação;
- Os cookies têm uma data de validade limitada de aproximadamente três meses. Se for avisado que o cookie está errado ou expirou, você precisará atualizar o cookie novamente.