Araña Weibo
Este programa puede rastrear continuamente los datos de uno o más usuarios de Sina Weibo (como Hu Ge, Dilraba, Guo Biting) y escribir la información del resultado en un archivo o base de datos . La información escrita incluye casi todos los datos del Weibo del usuario, incluidas dos categorías: información del usuario e información de Weibo . Debido a que hay demasiado contenido, no entraré en detalles aquí. Para obtener más información, consulte los campos obtenidos. Si solo necesita información del usuario, puede configurar la función para rastrear solo la información del usuario de Weibo. Este programa necesita configurar cookies para obtener acceso a Weibo. Más adelante se explicará cómo obtener cookies. Si no desea configurar cookies, puede utilizar la versión sin cookies, que tiene funciones similares.
Los resultados del rastreo se pueden escribir en archivos y bases de datos. Los tipos de archivos de escritura específicos son los siguientes:
- archivo txt (predeterminado)
- archivo csv (predeterminado)
- archivo json (opcional)
- Base de datos MySQL (opcional)
- Base de datos MongoDB (opcional)
- Base de datos SQLite (opcional)
También admite la descarga de imágenes y videos de Weibo. Los archivos descargables específicos son los siguientes:
- Imagen original de Weibo original (opcional)
- Vuelva a publicar la imagen original de Weibo (opcional)
- Vídeo original en Weibo (opcional)
- Volver a publicar videos en Weibo (opcional)
- Vídeos en Weibo Live Photo original (exclusivo de la versión sin cookies)
- Vuelva a publicar videos de Weibo Live Photo (exclusivo de la versión sin cookies)
Lista de contenidos
[TOC]
- Araña Weibo
- Lista de contenidos
- Los campos obtenidos
- Información del usuario
- Información de Weibo
- Ejemplo
- Entorno operativo
- Instrucciones de uso
- 0.Versión
- 1. Programa de instalación
- Instalación del código fuente
- instalación de pipa
- 2. Configuración del programa
- 3. Ejecute el programa
- Programa de personalización (opcional)
- Rastrear Weibo automáticamente con regularidad (opcional)
- como conseguir galletas
- Cómo obtener user_id
- Preguntas frecuentes
- investigación académica
- Proyectos relacionados
- contribuir
- Contribuyente
- Cosas a tener en cuenta
Los campos obtenidos
Esta sección es una descripción de la información del campo rastreado. Para distinguirlo de la versión sin cookies, la información rastreada por ambos se enumera a continuación. Si la información es exclusiva de la versión sin cookies, se marcará como libre de cookies y la información que no está marcada es común a ambas.
Información del usuario
- Identificación de usuario: identificación de usuario de Weibo, como "1669879400". De hecho, este campo es un campo conocido.
- Apodo: apodo del usuario, como "Dear-Dilraba"
- Género: género del usuario de Weibo
- Cumpleaños: fecha de nacimiento del usuario
- Ubicación: ubicación del usuario
- Experiencia de aprendizaje: el nombre y la hora de la escuela a la que el usuario asistió a la escuela.
- Experiencia laboral: Nombre de la empresa y tiempo del usuario.
- Crédito Sunshine (versión sin cookies): Crédito Sunshine del usuario
- Hora de registro en Weibo (versión sin cookies): fecha de registro en Weibo del usuario
- Número de Weibos: Número de todos los Weibos del usuario (Weibos retuiteados + Weibos originales)
- Número de seguidores: el número de publicaciones de Weibo que sigue el usuario.
- Número de fans: el número de fans del usuario.
- Introducción: perfil de usuario
- Dirección de la página de inicio (versión sin cookies): URL de la página de inicio de la versión móvil de Weibo
- URL de avatar (versión sin cookies): URL de avatar de usuario
- URL de avatar de alta definición (versión sin cookies): URL de avatar de alta definición del usuario
- Nivel de Weibo (versión sin cookies): Nivel de usuario de Weibo
- Nivel de membresía (versión sin cookies): nivel de usuario miembro de Weibo, el nivel para usuarios normales es 0
- Ya sea para autenticar (versión sin cookies): si el usuario está autenticado, un tipo booleano
- Tipo de autenticación (versión sin cookies): tipo de autenticación de usuario, como autenticación personal, autenticación empresarial, autenticación gubernamental, etc.
- Información de autenticación: exclusiva para usuarios autenticados, información de autenticación que se muestra en la columna de información del usuario
Información de Weibo
- ID de Weibo: el logotipo exclusivo de Weibo
- Contenido de Weibo: texto de Weibo
- URL del artículo principal: la URL del artículo principal en Weibo. Si no hay ningún artículo principal en Weibo, el valor es ''.
- URL de la imagen original: la imagen original de Weibo y la URL de la imagen en el motivo del reenvío de Weibo. Si hay varias imágenes en una publicación de Weibo, cada URL está separada por una coma en inglés. Si no hay ninguna imagen, el valor es ". Ninguno"
- URL del vídeo: la URL del vídeo en Weibo. Si no hay ningún vídeo en Weibo, el valor es "Ninguno".
- Ubicación de publicación en Weibo: Ubicación de publicación en Weibo
- Hora de publicación de Weibo: la hora de publicación de Weibo, con precisión de minuto
- Número de Me gusta: Número de Me gusta en Weibo
- Número de retweets: el número de retweets en Weibo
- Número de comentarios: el número de comentarios en Weibo
- Herramientas de publicación de Weibo: herramientas de publicación de Weibo, como el cliente de iPhone, HUAWEI Mate 20 Pro, etc.
- Archivo de resultados: guardado en la carpeta que lleva el nombre del apodo del usuario en la carpeta Weibo del directorio actual, en el formato "user_id.csv" y "user_id.txt".
- Imágenes de Weibo: las imágenes del Weibo original y las imágenes de los motivos del reenvío en Weibo se guardan en la carpeta img debajo de la carpeta que lleva el nombre del apodo del usuario.
- Videos de Weibo: videos originales en Weibo, guardados en la carpeta de videos debajo de la carpeta que lleva el nombre del apodo del usuario.
- Oferta de Weibo (versión sin cookies): exclusiva de la versión sin cookies, tiene el mismo valor que la identificación de Weibo en este programa.
- Tema (versión sin cookies): tema de Weibo, es decir, el contenido entre dos #. Si hay varios temas, cada URL está separada por una coma en inglés. Si no hay ninguno, el valor es ''.
- @usuario (versión sin cookies): Weibo @ usuario, si hay varios @ usuarios, cada URL está separada por una coma en inglés, si no, el valor es ''
- Weibo original (versión sin cookies): exclusivo del Weibo reenviado. Es el Weibo reenviado en el Weibo reenviado. Se almacena en forma de diccionario y contiene todos los contenidos de la información de Weibo anterior, como la identificación de Weibo, el contenido de Weibo, etc. .
Ejemplo
Si desea conocer los resultados de ejecución específicos del programa, puede ver el documento de muestra, que presenta un ejemplo de rastreo de Weibo de Dilireba y adjunta algunas capturas de pantalla de los archivos de resultados.
Entorno operativo
- Lenguaje de desarrollo: python2/python3
- Sistema: Windows/Linux/macOS
Instrucciones de uso
0.Versión
Hay dos versiones de este programa. La que ve ahora es la versión python3 y la otra es la versión python2. La versión python2 se encuentra en la rama python2. Actualmente, estamos desarrollando principalmente la versión python3, incluido el desarrollo de nuevas funciones y corrección de errores; la versión python2 solo admite correcciones de errores. Se recomienda que los usuarios de python3 utilicen la versión actual y que los usuarios de python2 utilicen la versión de python2. Este manual de instrucciones es para la versión de python3.
1. Programa de instalación
Este programa proporciona dos métodos de instalación, uno es la instalación del código fuente y el otro es la instalación de pip , los cuales tienen exactamente las mismas funciones. Si necesita modificar el código fuente, se recomienda utilizar el primer método; de lo contrario, puede elegir cualquier método de instalación.
Instalación del código fuente
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
instalación de pipa
$ python3 -m pip install weibo-spider
2. Configuración del programa
Para obtener información sobre la configuración del programa, revise la documentación de configuración del programa.
3. Ejecute el programa
Los usuarios que instalan el código fuente pueden ejecutar los siguientes comandos en el directorio de weiboSpider. Los usuarios que instalan pip pueden ejecutar los siguientes comandos en cualquier directorio con permisos de escritura.
$ python3 -m weibo_spider
Cuando se ejecuta por primera vez, el archivo de configuración config.json se creará automáticamente en el directorio actual. Después de la configuración, ejecute el mismo comando para obtener Weibo.
Si ya tiene un archivo config.json, también puede configurar la ruta config.json a través del parámetro config_path y ejecutar el programa. La línea de comando es la siguiente:
$ python3 -m weibo_spider --config_path= " config.json "
Si desea especificar la ruta para guardar el archivo (csv, txt, json, imagen, video), puede configurarla a través del parámetro output_dir. Si desea guardar el archivo en el directorio /home/weibo/, puede ejecutar el siguiente comando:
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
Si desea ingresar user_id a través de la línea de comando, puede usar el parámetro u. Puede ingresar uno o más user_id. Cada user_id está separado por una coma. Si hay user_ids duplicados entre estos user_ids, el programa eliminará automáticamente los duplicados. La línea de comando es la siguiente:
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
El programa obtendrá los usuarios de Weibo cuyos ID de usuario son 1669879400 y 1223178222. Más adelante explicaremos cómo obtener el ID de usuario. Todos los ID de usuario en este método se configuran usando since_date y end_date en config.json, y el rango de tiempo de rastreo se puede controlar modificando sus valores. Si user_id_list en config.json es una ruta de archivo, user_id en cada línea de comando se guardará automáticamente en el archivo y se actualizará automáticamente desde_date; si no es una ruta, user_id se guardará en user_id_list.txt en el directorio actual; y se actualiza automáticamente desde_date, si user_id_list.txt no existe en el directorio actual, el programa lo creará automáticamente.
Programa de personalización (opcional)
Esta sección es opcional y puede ignorarse si no necesita personalizar el programa o agregar nuevas funciones.
El código principal de este programa se encuentra en el archivo weibo_spider.py. El cuerpo principal del programa es una clase Spider. Todas las funciones anteriores se implementan llamando a la clase Spider en la función principal.
config = get_config ()
wb = Spider ( config )
wb . start () # 爬取微博信息
Los usuarios pueden llamar o modificar la clase Spider según sus propias necesidades. Al ejecutar este programa, podemos obtener mucha información.
Haga clic para ver detalles
- wb.user['apodo']: Apodo del usuario;
- wb.user['género']: género del usuario;
- wb.user['ubicación']: ubicación del usuario;
- wb.user['cumpleaños']: fecha de nacimiento del usuario;
- wb.user['descripción']: perfil de usuario;
- wb.user['verified_reason']: Autenticación de usuario;
- wb.user['talent']: etiqueta de usuario;
- wb.user['educación']: experiencia de aprendizaje del usuario;
- wb.user['trabajo']: experiencia laboral del usuario;
- wb.user['weibo_num']: número de Weibo;
- wb.user['following']: Número de seguidores;
- wb.user['followers']: número de fans;
wb.weibo : excepto la información anterior, wb.weibo contiene toda la información rastreada de Weibo, como ID de Weibo , texto de Weibo , URL de la imagen original , ubicación de publicación , hora de publicación , herramienta de publicación , número de me gusta , número de retweets , número de comentarios , etc Si está rastreando todo Weibo (original + reenviado), además de la información anterior, también incluye la URL de la imagen original del Weibo reenviado , ya sea un Weibo original, etc. wb.weibo es una lista que contiene toda la información rastreada de Weibo. wb.weibo[0] es el primer Weibo rastreado, wb.weibo[1] es el segundo Weibo rastreado, y así sucesivamente. Cuando filtro = 1, wb.weibo [0] es el primer Weibo original rastreado, y así sucesivamente. wb.weibo[0]['id'] es el id del primer Weibo, wb.weibo[0]['content'] es el texto del primer Weibo, wb.weibo[0]['publish_time'] es el momento de publicación de la primera publicación de Weibo, y hay mucha otra información que no entraré en detalles. Puede hacer clic en "Detalles" a continuación para ver el uso específico.
Detalles
Si el usuario objetivo de Weibo existe en Weibo, entonces:
- id: almacena el ID de Weibo. Por ejemplo, wb.weibo[0]['id'] es la identificación del último Weibo;
- contenido: almacena el texto principal de Weibo. Por ejemplo, wb.weibo[0]['content'] es el texto de la última publicación de Weibo;
- Article_url: almacena la URL del artículo titular en Weibo. Por ejemplo, wb.weibo[0]['article_url'] es la URL del último artículo titular de Weibo. Si no hay ningún artículo titular en Weibo, el valor es '';
- imágenes_originales: almacena la URL de la imagen original del Weibo original y la URL de la imagen en el motivo del reenvío de Weibo. Por ejemplo, wb.weibo[0]['original_pictures'] es la URL de la imagen original del último Weibo. Si Weibo tiene varias imágenes, se almacenarán varias URL, separadas por comas en inglés, si Weibo no tiene imágenes. el valor es "Ninguno";
- retweet_pictures: almacena las URL de las imágenes originales en el Weibo retuiteado. Cuando el último Weibo es un Weibo original o un Weibo reenviado sin imágenes, el valor es "ninguno"; de lo contrario, es la URL de la imagen del Weibo reenviado. Si hay varias imágenes, se almacenarán varias URL, separadas por comas;
- publicar_place: almacena la ubicación de publicación de Weibo. Por ejemplo, wb.weibo[0]['publish_place'] es la ubicación de publicación del último Weibo. Si Weibo no tiene información de ubicación, el valor es "Ninguno";
- publicar_time: almacena el tiempo de publicación de Weibo. Por ejemplo, wb.weibo[0]['publish_time'] es la hora de publicación del último Weibo;
- up_num: almacena el número de me gusta obtenidos por Weibo. Por ejemplo, wb.weibo[0]['up_num'] es el número de Me gusta obtenidos por la última publicación de Weibo;
- retweet_num: almacena el número de retweets obtenidos por Weibo. Por ejemplo, wb.weibo[0]['retweet_num'] es el número de retweets recibidos por el último Weibo;
- comment_num: almacena el número de comentarios obtenidos por Weibo. Por ejemplo, wb.weibo[0]['comment_num'] es la cantidad de comentarios recibidos por el último Weibo;
- publicar_tool: herramienta de publicación de almacenamiento para Weibo. Por ejemplo, wb.weibo[0]['publish_tool'] es la herramienta de publicación de la última versión de Weibo.
Rastrear Weibo automáticamente con regularidad (opcional)
Si desea que el programa rastree automáticamente cada período de tiempo y el contenido rastreado es contenido recién agregado (excluyendo Weibo que ya se ha obtenido), marque Rastrear Weibo automáticamente de forma regular.
como conseguir galletas
Para saber cómo obtener cookies, consulte la documentación sobre cookies.
Cómo obtener user_id
Para saber cómo obtener user_id, consulte el documento user_id, que describe cómo obtener el user_id de uno o más usuarios de Weibo.
Preguntas frecuentes
Si se produce un error al ejecutar el programa, puede ver la página de preguntas frecuentes, que contiene los problemas y soluciones más comunes. Si el error que ocurre no está en las preguntas frecuentes, puede solicitar ayuda enviando un problema y estaremos encantados de responderlo por usted.
investigación académica
Este proyecto obtiene datos de Weibo para proporcionar los datos necesarios para proyectos no comerciales, como escribir artículos y realizar investigaciones. Los documentos de investigación académica son proyectos en los que se ha utilizado el programa en tesis o investigaciones, etc., y se muestran con el permiso del propietario. Nos hemos comunicado con el propietario sobre algunas descripciones relacionadas con la privacidad y la descripción solo presenta las partes que el propietario permite que se muestren. Si el propietario de alguna información aceptó previamente que se mostrara y la ha escrito en el documento, pero ahora no quiere mostrarla, puede informarme por correo electrónico ([email protected]) o emitir, y eliminaré la información relevante. información. Al mismo tiempo, los amigos que utilicen este proyecto para escribir artículos o realizar otras investigaciones académicas también pueden mostrar los resultados de su investigación en documentos de investigación académica. Esto es completamente voluntario.
Para su comodidad, las entradas bibtex para este proyecto se proporcionan de la siguiente manera:
@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}
}
Proyectos relacionados
- Weibo-crawler: la función es exactamente la misma que la de este proyecto, no puede agregar cookies y obtener más atributos de Weibo;
- Weibo-search: puede obtener continuamente uno o más resultados de búsqueda de palabras clave de Weibo y escribir los resultados en un archivo (opcional), base de datos (opcional), etc. La llamada búsqueda de palabras clave de Weibo significa: buscar Weibo que contenga palabras clave específicas en el texto y puede especificar el rango de tiempo de búsqueda. Para palabras clave muy populares, se pueden obtener más de 10 millones de resultados de búsqueda en un día y se pueden obtener 10 millones de XN resultados de búsqueda en N días. Para la mayoría de las palabras clave, la cantidad de microblogs correspondientes generados en un día debe ser inferior a 10 millones, por lo que se puede decir que el programa puede obtener todos o casi todos los resultados de búsqueda para la mayoría de las palabras clave. Además, este programa puede obtener toda la información de los resultados de la búsqueda, y este programa puede obtener la información de Weibo obtenida por este programa.
contribuir
Bienvenido a contribuir a este proyecto. La contribución puede realizarse enviando código, haciendo sugerencias (como nuevas características, planes de mejora, etc.) a través de problemas, o informándonos sobre errores, deficiencias, etc. en el proyecto a través de problemas. Para conocer formas específicas de contribuir, consulte Contribuir a esto. proyecto.
Contribuyente
Gracias a todos los amigos que han contribuido a este proyecto. Consulte la página de contribuyentes para obtener detalles sobre los contribuyentes.
Cosas a tener en cuenta
- El user_id no puede ser el user_id del rastreador Weibo. Porque para rastrear la información de Weibo, primero debe iniciar sesión en una cuenta de Weibo. Llamemos a este rastreador de cuentas Weibo. Cuando el rastreador Weibo visita su propia página y las páginas de otros usuarios, el formato de la página web obtenida es diferente, por lo que no puede rastrear su propia información de Weibo. Si desea rastrear el contenido del rastreador Weibo, puede consultar Cómo obtener su propio Weibo; Información;
- Las cookies tienen una fecha de caducidad limitada de aproximadamente tres meses. Si le indica que la cookie es incorrecta o ha caducado, debe actualizarla nuevamente.