Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado.
Scraping HTML puede ser complicado, así que asegúrese de comprender este proceso con un poco de práctica de Python.
Twitter es una de las plataformas de redes sociales más influyentes que jamás haya existido. Millones de personas, incluidos los principales políticos, celebridades y directores ejecutivos, usan la plataforma para compartir sus pensamientos todos los días.
La pestaña de tendencias es uno de los mejores lugares para encontrar noticias en tiempo real y opiniones en las redes sociales. Puede analizar y utilizar estos datos para planificar anuncios de marca, ejecutar campañas y aumentar las ventas por pliegues. Pero, ¿cómo puedes obtener los diez hashtags más populares en Twitter?
El proceso de construcción de algoritmos
El primer paso para crear cualquier programa es observar y comprender los pasos necesarios para crear un raspador de Twitter. Ellos son:
- Abre Google Chrome.
- Visita la página de tendencias de Twitter.
- Reúna los hashtags y su respectivo enlace de página.
- Guarda los datos en una hoja de cálculo.
Esto sirve como el algoritmo del enunciado del problema.
Comprender la página web de Twitter
Debe saber cómo una página web marca sus datos antes de poder extraerlos. Ayuda mucho si tienes una buena comprensión de los fundamentos de html y CSS.
Sigue estos pasos para averiguar cómo Twitter representa un hashtag de tendencia y su URL:
- Visita La página de tendencias de Twitter. También puede navegar a Twitter.com → Explorar → Tendencias para verlo
- Inspeccionar la columna principal usando las herramientas de desarrollo de Chrome. Ir a Menú (3 puntos)>Más herramientas >Herramientas de desarrollo y desplace la herramienta de selección de elementos sobre el área de tendencia.
- La cronología de tendencias es una división con un etiqueta aria atributo cuyo valor es "Cronología: Explorar". Pase el cursor sobre el marcado en el Elementos panel para comprender mejor la estructura de la página. Otro división almacena el hashtag/tema de tendencia. Use este div como contador e itere a todos los divs en la página que contiene el tema/hashtag de tendencia. El contenido se almacena dentro de un durar o un par de elementos de tramo. Observe la pestaña abierta y tenga en cuenta la jerarquía. Puede usar esto para construir una expresión XPath. La expresión XPath para este elemento específico es:
Iterar y apuntar a div[3], div[4], div[5], etc. Para los diez hashtags principales, el contador va de 3 a 13. El XPath generalizado se convierte en:'//div[@aria-label="Cronología: Explorar"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
//div[@aria-label="Cronología: Explorar"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
- Haga clic en cualquier hashtag para comprender la URL de sus páginas. Si compara las URL, debe notar que solo el parámetro de consulta cambia para coincidir con el nombre del hashtag. Puede usar esta información para crear direcciones URL sin extraerlas realmente.
Este proyecto utiliza los siguientes módulos y herramientas de Python:
1. Módulo Pandas
Puede use la clase Pandas DataFrame para almacenar los hashtags y sus respectivos enlaces en formato tabular. Esto será útil cuando se trata de agregar estos contenidos a un archivo CSV que puede compartir externamente.
2. Módulo de tiempo
Use el módulo de tiempo para agregar un retraso al programa de Python para permitir que el contenido de la página se cargue por completo. Este ejemplo usa un retraso de 15 segundos, pero puede experimentar y elegir un retraso apropiado para sus circunstancias.
3. Módulo de selenio
Selenium puede automatizar el proceso de interacción con la web. Puede usarlo para controlar una instancia de un navegador web, abrir la página de tendencias y desplazarse hacia abajo. Para instalar Selenium en su entorno de Python, abra su Terminal y ejecutarpip instalar selenio.
4. Controlador web
Use un controlador web en combinación con Selenium para interactuar con el navegador. Hay diferentes controladores web disponibles según el navegador que desee automatizar. Para esta compilación, use el popular navegador Google Chrome. Para instalar el controlador web para Chrome:
- Compruebe la versión del navegador que está utilizando visitando el Menú (3 puntos) > Ayuda>Acerca de Google Chrome.
- Tenga en cuenta la versión del navegador; en este caso, es 106.0.5249.62.
- Ir a tu Terminal y tipo pip install chromedriver-binary==número_versión:
Si no hay una versión coincidente, pip le mostrará una lista de las disponibles; elige el más cercano a tu versión de Chrome.pepita instalar chromedriver-binario==106.0.5249.62
Cómo construir el raspador de Twitter
Siga estos pasos para crear su programa y obtener hashtags de tendencias en tiempo real. Puede encontrar el código fuente completo en este Repositorio GitHub.
- Importe los módulos necesarios en el entorno de Python.
# importando los módulos requeridos
de selenio importar controlador web
deselenio.webdriver.común.porimportarPor
importar chromedriver_binario
importar tiempo
importar pandas como p.d. - Cree un objeto para inicializar ChromeDriver e inicie el navegador Google Chrome usando el controlador web. Cromo() función.
# abrir navegador google chrome
navegador = controlador web. Cromo() - Abra la página de tendencias de Twitter pasando su URL al conseguir() función.
# abre la página de tendencias de Twitter
navegador.get('https://twitter.com/explore/tabs/trending') - Aplicar un retraso para que el contenido de la página se cargue por completo.
# retraso para la carga del contenido de la página
tiempo.dormir(15) - Cree una lista vacía para almacenar los hashtags y declare un ciclo que se ejecuta de 3 a 13 para que coincida con la variable en la expresión XPath de antes.
# inicializar la lista para almacenar temas de tendencia y hashtags
trending_topic_content=[]# recopilar temas y hashtags en la página de tendencias de Twitter
para i en rango (3,13): - Utilizar el encontrar_elemento() función y pasar el selector XPath para obtener los temas y hashtags de tendencia en Twitter:
xpath = f'//div[@aria-label="Cronología: Explorar"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
trending_topic = browser.find_element (Por. XPATH, xpath)
trending_topic_content.adjuntar(trending topic.texto) - Cree una lista vacía para almacenar todas las URL y declare un ciclo que se ejecuta a través de todos los hashtags.
Use el operador de división para omitir el hashtag para crear su URL y reemplace los espacios con codificación de URL, %20. Agregue los enlaces a la lista.# crear URL utilizando los hashtags recopilados
URL=[]
para i en trending_topic_content:si i.empieza con("#"):
yo = yo[1:]
dirección URL ='https://twitter.com/search? q=%23' + yo + '&src=clic_de_tendencia'
demás:
dirección URL = 'https://twitter.com/search? q=' + yo + '&src=clic_de_tendencia'
url = url.replace("", "%20")
direcciones URL.adjuntar(URL) - Cree un Diccionario de par clave-valor con claves como hashtags y valores como sus URL.
# crear un diccionario que tenga tanto el hashtag como las URL
dic={'Hashtag':trending_topic_content,'URL':urls} - Convierta el diccionario no estructurado en un DataFrame tabular.
# convertir el diccionario a un marco de datos en pandas
df=pd. Marco de datos (dic)
imprimir(fd) - Guarde el DataFrame en un archivo CSV que pueda ver en Microsoft Excel o procesar más.
# convertir el marco de datos en formato de valores separados por comas sin números de serie
df.a_csv("Twitter_HashTags.csv",índice=Falso)
Obtenga información valiosa utilizando Web Scraping
El web scraping es un método poderoso para obtener los datos deseados y analizarlos para tomar decisiones. Beautiful Soup es una biblioteca impresionante que puede instalar y usar para extraer datos de cualquier archivo HTML o XML usando Python.
Con esto, puede rastrear Internet para obtener titulares de noticias en tiempo real, precios de productos, puntajes deportivos, valor de acciones y más.