Raspado de datos de Twitter con Python [con 2 API]
Publicado: 2020-11-30Tabla de contenido
Introducción
Las plataformas de redes sociales como Twitter son uno de los mejores repositorios para recopilar conjuntos de datos. Trabajar en un nuevo proyecto de ciencia de datos requiere una buena cantidad de datos, recopilar el conjunto de datos no es una tarea fácil.
Y Twitter proporciona un género diversificado de datos porque es una colección de tweets de personas con diferentes mentalidades y diferentes sentimientos. Este tipo de conjunto de datos sin sesgo es un requisito previo muy necesario para entrenar un nuevo modelo de aprendizaje automático.
¡Empecemos!
Vamos a recorrer 2 API para el raspado de datos de Twitter.
- llorona
- gemelo
llorona
Antes de comenzar a recorrer el código de Python para extraer datos mediante la API de Tweepy, hay un punto que debe saber: necesitamos las credenciales de una cuenta de desarrollador de Twitter y es pan comido si ya las tiene.
Para las personas que no tienen una cuenta de desarrollador, pueden solicitarla aquí . Y antes de solicitar una cuenta de desarrollador, debe tener una cuenta de Twitter. Solicitar una cuenta de desarrollador es un proceso sencillo y la solicitud hace algunas preguntas básicas como el motivo de la solicitud, etc. Y la aprobación de la cuenta de desarrollador generalmente toma de 2 a 3 días.
Una vez que reciba la aprobación para la cuenta de desarrollador, tome nota de sus claves de API de consumidor, token de acceso y secreto de token de acceso en la sección "claves y tokens".
Además, hay que tener en cuenta que hay pocas restricciones para tweepy, como que solo puedes raspar tweets que no tengan más de una semana. Y un límite en el scraping, hasta 18000 tweets en un lapso de tiempo de 15 minutos.
Genial, ahora que tenemos claves y tokens de la cuenta de desarrollador, vamos a autorizarlos.
consumer_key = " su clave de consumidor " consumer_secret = " tu secreto de consumidor " access_token = " su token de acceso " access_token_secret = " tu token secreto " autorización = tweepy.OAuthHandler(clave_consumidor, secreto_consumidor) autorización.set_access_token(access_token, access_token_secret) api = tweepy.API(autorización,wait_on_rate_limit = True ) |
Ahora que nos hemos autorizado con nuestras credenciales, raspamos los tweets de una cuenta en particular. Por ahora, raspamos los tweets del Sr. Sundar Pichai.
nombre de usuario = ' sundarpichai ' cuenta = 100 prueba : #línea 1 tweets_obj = tweepy.Cursor(api.user_timeline,id = nombre de usuario).items(recuento) #línea 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] para tweet en tweets_obj] #línea 3 tweets_df = pd.DataFrame(lista_tweets) excepto BaseException como e: imprimir ( ' algo salió mal, ' , str (e)) |
En el fragmento anterior, line1 crea un objeto iterable con todos los tweets y se asigna a una variable "tweets_obj". Una vez que hayamos terminado de crear un objeto iterable, iteremos sobre él y extraigamos todos los datos.
Estamos extrayendo solo algunos atributos como "created_at", "id", "text" y los agregamos a cada entrada en una matriz 2D. Donde cada entrada tiene todos los datos de cada tweet que raspamos. Ahora que tenemos una matriz 2D con atributos como cada entrada, podemos convertirla en un marco de datos usando la sintaxis "pd.DataFrame()".
La razón para convertir una matriz en un marco de datos es una mayor flexibilidad, la disponibilidad de métodos predefinidos y el fácil acceso lo hace destacar entre todas las estructuras de datos para proyectos de ciencia de datos.
De manera similar, analicemos un código para raspar datos que tiene una consulta de texto particular.
text_query = ' voz para local ' cuenta = 100 prueba : #línea 1 tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count) #línea 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] para tweet en tweets_obj] #línea 3 df = pd.DataFrame(tweets_list) excepto BaseException como e: imprimir ( ' algo salió mal, ' , str (e)) |
En el fragmento anterior, todo es igual que el fragmento anterior. Por último, creamos un marco de datos con todos los tweets que contenían la consulta de texto "vocal for local".
Si está buscando un raspado de datos más específico o personalizado, como incluir más atributos como el recuento de retweets, el recuento de favoritos, etc. Podemos personalizar nuestra sintaxis y extraer otros atributos proporcionados por tweepy. Para obtener más información sobre otros atributos ofrecidos por tweepy, consulte la documentación .
gemelo
Twint API no requiere ninguna credencial de cuenta de desarrollador, puede raspar tweets fácilmente sin ninguna clave de autorización. Además, twint no tiene restricciones como la cantidad de tweets, marcos de tiempo, límites de raspado, etc. Twint le brinda un raspado de datos sin problemas y una API fácil de usar.
Podemos imprimir la lista de seguidores de una persona utilizando su nombre de usuario desde la API twint.
t_obj = twint.Config() t_obj.Username = “ sundarpichai ” twint.run.Seguidores(t_obj) |
En el fragmento anterior twint.Config() configura la API twint y hace que todo comience. Y después de asignar un objeto podemos usar esa referencia para nuestro trabajo, “t_obj.Username” asigna el nombre de usuario que hemos ingresado. Y twint.run.Followers realiza una búsqueda de todos los seguidores de ese nombre de usuario.

También podemos almacenar los datos raspados en un marco de datos similar a la API de tweepy.
t_obj.Límite = 100 t_obj.Username = “ sundarpichai ” t_obj.Pandas = Verdadero twint.run.Seguidores(t_obj) result_df = twint.storage.panda.User_df |
Todo en el fragmento es casi igual que el fragmento anterior, solo que con una línea adicional de sintaxis "twint.storage.panda.User_df" que convierte los datos raspados en un marco de datos. El marco de datos de resultados consiste en una lista de seguidores del nombre de usuario proporcionado.
Ahora que hemos visto el raspado de datos de seguidores de un nombre de usuario en particular, veamos el código para raspar tweets de una cuenta en particular.
t_obj.Buscar = “ de:@sundarpichai ” t_obj.Store_object = Verdadero t_obj.Límite = 20 twint.ejecutar.Buscar(t_obj) tweets = t.search_tweet_list imprimir (tuits) |
En el fragmento anterior, estamos creando el objeto configurado para buscar tweets de una persona en particular, también podemos establecer el límite de tweets mientras raspamos usando la sintaxis "t_obj.Limit". Y después de ejecutar la búsqueda, crea una lista de todos los tweets y podemos asignarla a una variable local según nuestra necesidad.
Después de ver los fragmentos de información extraída de una cuenta en particular, es posible que tenga una pregunta rápida: ¿cómo extraer tweets que contienen una palabra clave en particular? No es un problema twint tiene una solución para esto.
t_obj.Search = " ciencia de datos " t_obj.Store_object = Verdadero t_obj.Límite = 100 twint.ejecutar.Buscar(t_obj) tweets = t.search_tweet_list imprimir (tuits) |
El fragmento anterior es el mismo que el fragmento para extraer tweets de una cuenta en particular, con una sola diferencia en la línea 1. También podemos convertirlo en un marco de datos según nuestra conveniencia.
Para obtener más información sobre la API twint, eche un vistazo a su repositorio y documentación .
Conclusión
Hemos entendido la importancia de raspar los datos. Revisó dos API y sus funciones para extraer datos de Twitter. He visto algunos métodos para convertir los datos raspados a nuestro formato de archivo requerido. Ahora que conoce estas API, ¡comience a recopilar datos para sus proyectos de ciencia de datos!
En upGrad nos complace ayudarlo y también nos gustaría informarle sobre las oportunidades que puede tener al aprender Python. Python se ha utilizado ampliamente para el aprendizaje automático y la ciencia de datos, dos de las tecnologías más populares y emergentes. Aprender Python y también tener conocimiento de estas habilidades te hará sobresalir en tu campo y obtener mejores oportunidades profesionales.
Tenemos muchos cursos desarrollados junto con expertos de la industria e institutos académicos de primer nivel para brindarle todas las habilidades necesarias para sobresalir en este campo. Algunos de los cursos que pueden ayudarte a hacer uso de tus conocimientos en python y aumentar tus perspectivas profesionales:
Ciencia de los datos:
Consulte los Programas de ciencia de datos en línea de upGrad desarrollados con IIIT-B, es un curso completo de ciencia de datos para ingresar a este campo y dejar una marca en las industrias con su conocimiento.
Maestría en Ciencias en Ciencia de Datos : Desarrollada en coordinación con la Universidad John Moores de Liverpool y el IIIT-B, obtuvo una maestría en Ciencia de Datos de una de las mejores universidades del mundo.
Aprendizaje automático:
Certificación avanzada en aprendizaje automático e inteligencia artificial : IIT madras, una de las mejores instituciones educativas de la India, se ha asociado con upGrad para realizar un curso avanzado sobre aprendizaje automático para que las personas tengan un conocimiento completo del aprendizaje automático con este curso.
Maestría en Ciencias en Aprendizaje Automático e IA : La Universidad John Moores de Liverpool y el IIIT-B se han asociado con upGrad para proporcionar maestrías completas en ciencias para que las personas aprendan la tecnología en detalle y obtengan un título formal en esta tecnología para pavimentar un exitoso camino en este campo.
Diploma PG en aprendizaje automático e inteligencia artificial : IIIT-B y upGrad se unieron para ayudar a las personas a tener la oportunidad de realizar un curso de 12 meses sobre aprendizaje automático e inteligencia artificial y tener la oportunidad de ingresar a esta tecnología con este curso.
¿Qué es el scraping de datos?
El raspado de datos se refiere a un proceso en el que un software de computadora extrae datos de una salida creada por otro programa. El raspado web es un tipo de raspado de datos que se utiliza para recopilar datos o información de diferentes sitios web. En web scraping, se utiliza una aplicación para recopilar información valiosa de un sitio web. El programa de web scraping puede acceder rápida y fácilmente a la WWW (World Wide Web) utilizando el HTML (Protocolo de transferencia de hipertexto) o un navegador web.
¿Por qué es necesario el raspado de datos en Twitter?
El raspado de datos en las redes sociales ayuda a rastrear, evaluar y examinar los datos disponibles en las plataformas. Twitter es la plataforma más popular, y el raspado de datos de Twitter ayuda a los usuarios a analizar el comportamiento del usuario, la estrategia de la competencia, el análisis de sentimientos y mantenerse al tanto de lo que ocurre en el canal social más popular del mundo a partir de los tweets de personas, pares y empresas que te importa El servicio de raspado de datos de Twitter maneja sus necesidades de extremo a extremo en la menor cantidad de tiempo y le brinda los datos necesarios. Twitter, por ejemplo, solo permite que los rastreadores recopilen datos a través de su API para restringir la cantidad de información sobre sus usuarios y sus actividades.
¿Qué son las API?
Las interfaces de programación de aplicaciones son los pequeños fragmentos de código que permiten que los dispositivos digitales, los programas de software y los servidores de datos se comuniquen entre sí, y son la columna vertebral vital de muchos de los servicios en los que confiamos actualmente. Una API conecta computadoras o piezas de software entre sí, a diferencia de una interfaz de usuario, que conecta una computadora con un ser humano. No está diseñado para el uso directo de nadie (el usuario final) que no sea un programador de computadoras que lo incorpore al software. Con frecuencia, una API se compone de muchos componentes que sirven como herramientas o servicios para el programador.