Capturar número de tweets.

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

Capturar número de tweets.

Mensaje por joaquin »

Hola,
He probado capturar el número de tweets de una página de Twitter con las funciones de IE pero no da el resultado esperado.
Cuando miro el código HTLM de la página, no localizo las etiquetas de "TWEETS" o "SEGUIDORES", únicamente los enlaces.
Agradecería cualquier sugerencia para resolver el tema.

#include <IE.au3>
$oIE=_IECreate("https://twitter.com/#!/el_pais")
$Tweet = _IEGetObjByName ($oIE, "tweet_stats")
MsgBox(0, "TWEETS", $Tweet)


Saludos.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Capturar número de tweets.

Mensaje por Chefito »

Puffffff, he visto el código javascript de la página que carga esos Tweets y es muy extenso. Si lo quisieses hacer directamente seguramente tendrías que averiguar que hace y ejecutar las funciones javascript que te interesen.

Otra forma es la que te voy a mostrar. Es esperar a que carge los Tweets en la página con un bucle que busque un texto específico que solamente salen en los Tweets para luego leer el texto de la página. Entonces verás que ya salen los Tweets. Te he puesto un ejemplo que te dice el número de Tweets que te aparece en la página. Si quieres sacar los textos es facil. Solamente debes tratar estos y coger lo que te interese.

Código: Seleccionar todo

#include <IE.au3>
$oIE=_IECreate("https://twitter.com/#!/el_pais")
Do
	Sleep(100)
	$textWeb=_IEBodyReadText($oIE)
Until StringInStr($textWeb,"RetwitteadoRetwittear")

ConsoleWrite($textWeb)
$numTweets=StringRegExp($textWeb,"RetwitteadoRetwittear",3)
MsgBox(0,"Número Tweets en página Web",UBound($numTweets))
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Capturar número de tweets.

Mensaje por jamaro »

Hola. Hace días que no estoy por el foro....

Respecto a la obtención de tweets, yo usaría búsqueda con expresiones regulares.

Los titulares parece que están contenidos entre:

<span class="entry-content"> y <a href="

Para ellos se puede utilizar la expresión regurlar:

<span class="entry-content">(.*?)<a href="

Aunque habría que depurar porque si hay enlaces dentro del mensaje puede que no aparezca todo, o quizás código que no es sólo texto.

¡Saludos!
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

Re: Capturar número de tweets.

Mensaje por joaquin »

Gracias @Chefito, @Jamaro por vuestras respuestas.

Abundo un poco más en el planteamiento del problema, que tal como lo expresé creo que no queda claro.
Me interesa capturar el "número" de TWEETS y SEGUIDORES que se muestra en cualquier página de Twitter.
Con "Web Developer", obtuve la información que se muestra en el recuadro amarillo, pero ahí ya me quedo atorado y no sé cómo utilizar las funciones de IE para obtener el dato directamente, si es que es posible.
twitter.PNG
twitter.PNG (43.89 KiB) Visto 4437 veces
Saludos!
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Capturar número de tweets.

Mensaje por jamaro »

Pues sí entendí mal.

En ese caso, a mí me aparece la pantalla de otra manera (no soy usuario registrado de Tweeter) pero el número de "seguidores" está en una cadena así:

<span id="follower_count" class="stats_count numeric">197,297 </span>

Así que con expresiones regulares, una vez recuperado el texto de la página sería:

<span id="follower_count" class="stats_count numeric">(.*)</span>

Espero que ahora sí te sirva.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Capturar número de tweets.

Mensaje por Chefito »

Eso es otra cosa. Te digo lo mismo. Esa parte de la página parece que la genera un código javascript. Como el anterior, parece muy extenso y muy lioso. Si lo quieres hacer directamente y calentarte la cabeza ya sabes.

Si quieres hacerlo de la forma facil, pues lo haces de la forma anterior (ya lo expliqué en el post anterior).

El código sería algo así:

Código: Seleccionar todo

#include <IE.au3>
$oIE=_IECreate("https://twitter.com/#!/el_pais",0,0)
Do
   Sleep(100)
   $textWeb=_IEBodyReadText($oIE)
Until StringInStr($textWeb,"@el_pais")

;~ ConsoleWrite($textWeb)
$numTweets=StringRegExp($textWeb,"Cancelar (.*?) Tweets",3)
$numSeguidores=StringRegExp($textWeb,"\n(.*?) Seguidores",3)
MsgBox(0,"Número Tweets en página Web",$numTweets[0] & " Tweets" &@cr& $numSeguidores[0] & " Seguidores")
Saludos.-
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

Re: Capturar número de tweets.

Mensaje por joaquin »

OK. Gracias por las respuestas y compartir.
Con el código de Chefito queda resuelto el tema ya que captura perfectamente todos los datos... Bueno, como siempre....genial!! :smt023

Saludos :smt002
Responder