Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Duda Scraper Twitter
#1

Buen día,

¡Lo se, últimamente estoy muy preguntón! ¿alguien conoce un scraper para rastrear tweets de una cuenta ajena a la tuya y poder descargar dichos tweets en formato .excel o .csv.?

Mil gracias

¡Me auto respondo! Acabo de encontrar una herramienta genial.

Probado y funcionando

Esto es una maravilla y encima gratis Sonrisa

Tweets Scraper
Responder
#2

La conocías Sauron?
Responder
#3

Si quieres Scrapear Tweets con PHP puedes hacerlo con el siguiente código para trabajar con su API, eso si necesitas solicitar tus credenciales desde
https://dev.twitter.com/

Código de autentificación con el API de Twitter:
Código:
//Usuario de Twitter que quieres scrapear sus tweets
$twitter_handle = "usuario";

function buildBaseString($baseURI, $method, $params) {
    $r = array();
    ksort($params);
    foreach($params as $key=>$value){
        $r[] = "$key=" . rawurlencode($value);
    }
    return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
}

function buildAuthorizationHeader($oauth) {
    $r = 'Authorization: OAuth ';
    $values = array();
    foreach($oauth as $key=>$value)
        $values[] = "$key=\"" . rawurlencode($value) . "\"";
    $r .= implode(', ', $values);
    return $r;
}

$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";

$oauth_access_token = "your own";
$oauth_access_token_secret = "your own";
$consumer_key = "your own";
$consumer_secret = "your own";

$oauth = array( 'oauth_consumer_key' => $consumer_key,
                'oauth_nonce' => time(),
                'oauth_signature_method' => 'HMAC-SHA1',
                'oauth_token' => $oauth_access_token,
                'oauth_timestamp' => time(),
                'oauth_version' => '1.0',
                'screen_name' => $twitter_handle);

$base_info = buildBaseString($url, 'GET', $oauth);
$composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
$oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
$oauth['oauth_signature'] = $oauth_signature;

// Make Requests
$header = array(buildAuthorizationHeader($oauth), 'Content-Type: application/json', 'Expect:');
$options = array( CURLOPT_HTTPHEADER => $header,
                  //CURLOPT_POSTFIELDS => $postfields,
                  CURLOPT_HEADER => false,
                  CURLOPT_URL => $url . '?screen_name=' . $twitter_handle,
                  CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_SSL_VERIFYPEER => false);
$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);
curl_close($feed);

Código para mostrar los últimos tweets:
Código:
$decode = json_decode($json, true); //getting the file content as array

echo '<ul>';
foreach($decode as $tweet) {
    $tweet_text = $tweet["text"];
    echo '<li>';
    echo $tweet_text;
    echo '</li>';
}
echo '</ul>';

$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$reg_exHash = "/#([a-z_0-9]+)/i";
$reg_exUser = "/@([a-z_0-9]+)/i";

echo '<ul>';
foreach ($decode as $tweet) {
    $tweet_text = $tweet["text"]; //get the tweet
      
    // make links link to URL
    // http://css-tricks.com/snippets/php/find-urls-in-text-make-links/
    if(preg_match($reg_exUrl, $tweet_text, $url)) {

       // make the urls hyper links
       $tweet_text = preg_replace($reg_exUrl, "<a href='{$url[0]}'>{$url[0]}</a> ", $tweet_text);

    }

    if(preg_match($reg_exHash, $tweet_text, $hash)) {

       // make the hash tags hyper links    https://twitter.com/search?q=%23truth
       $tweet_text = preg_replace($reg_exHash, "<a href='https://twitter.com/search?q={$hash[0]}'>{$hash[0]}</a> ", $tweet_text);
        
       // swap out the # in the URL to make %23
       $tweet_text = str_replace("/search?q=#", "/search?q=%23", $tweet_text );

    }

    if(preg_match($reg_exUser, $tweet_text, $user)) {

        $tweet_text = preg_replace("/@([a-z_0-9]+)/i", "<a href='http://twitter.com/$1'>$0</a>", $tweet_text);

    }

    // display each tweet in a list item
    echo "<li>" . $tweet_text . "</li>";
}
echo '</ul>';

Este código PHP lo he sacado de (trabaja con la versión actual del API de Twitter v1.1):
http://www.johnbhartley.com/2013/twitter...json-v1-1/

Canal SEO en Telegram premium
Influenet - Compra/Venta de artículos patrocinados. Sonrisa
Responder
#4

(01-06-2014, 12:33 PM)Alekhine escribió:  La conocías Sauron?

No conocía esa herramienta Sonrisa, tiene muy buena pinta.

Canal SEO en Telegram premium
Influenet - Compra/Venta de artículos patrocinados. Sonrisa
Responder
#5

Joder menudas aportaciones! Haces que me sienta pequeño Triste

De todos modos muchas gracias.

No obstante supongo que dicho código que proporcionas, habría que insertarlo en un archivo, (llamemoslo Scraper) y subirlo vía FTP a nuestro servidor y luego acceder a la ruta correspondiente www.misitioweb.com/scraper.php

Es así?
Responder
#6

(01-06-2014, 12:45 PM)Alekhine escribió:  No obstante supongo que dicho código que proporcionas, habría que insertarlo en un archivo, (llamemoslo Scraper) y subirlo vía FTP a nuestro servidor y luego acceder a la ruta correspondiente www.misitioweb.com/scraper.php

Es así?

Exacto, lo subes por FTP y lo ejecutas desde una url por ejemplo.

Acuérdate de pedir tus credenciales para el API de Twitter
https://dev.twitter.com/

y cambiar estas líneas con esa información:
Código:
$oauth_access_token = "your own";
$oauth_access_token_secret = "your own";
$consumer_key = "your own";
$consumer_secret = "your own";

Canal SEO en Telegram premium
Influenet - Compra/Venta de artículos patrocinados. Sonrisa
Responder
#7

Gracias por el aporte, soy nuevo por aqui ahora pasaré por presentaciones.

Talega, orgulloso de ser un miembro de Foro Black Hat SEO desde Jun 2014.
Responder


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por rolex1
20-01-2017, 04:54 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)
Telegram Grupo Telegram