PHP Twitter Bot :: Crawling Emails

Um dos projectos que estou a começar a desenvolver é um Twitter Bot que seja capaz de simular o comportamento de um utilizador durante um curto período de tempo, dependendo da configuração que o utilizador lhe quiser dar. Deve também ter todas as funcionalidades que possam ser úteis ou pensáveis para um programa deste género e por isso muito é necessário pesquisar e estudar.

Hoje surgiu-me a ideia de utilizar a pesquisa do Twitter para encontrar e-mails. Claro que não fui o primeiro a pensar nisto, então em vez de reinventar a roda fui alterá-la apenas para andar melhor.

ob_start();

function writemail($matches) {
	foreach($matches as $emails)
		foreach ($emails as $email) {
			echo $email.'
';
			ob_flush();
		}

}

for($id=1; $id< =20; $id++) {
	$file = proxify_my_connection("http://search.twitter.com/search?page=".$id."&q=gmail.com+OR+msn.com+OR+hotmail.com+OR+%22email+me%22&rpp=100");

	$file = strip_tags($file);

	preg_match_all(
		"([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b)siU",
		$file,
		$matches);

	writemail($matches);

}
ob_end_flush();

O que este código faz, basicamente, é ler a página de pesquisa do Twitter e utilizando Regular Expressions encontrar os e-mails existentes na página, e depois continua pelas páginas seguintes.

/search?page=".$id."&q=gmail.com+OR+msn.com+OR+hotmail.com+OR+%22email+me%22&rpp=100

page numero da página
q representa a query, a chave a pesquisar
rpp results per page sendo que o máximo permitido pelo twitter é 100

Como podem reparar no meu código existe uma função que não está presente nem faz parte do PHP, a proxify_my_connection, é uma ferramenta que eu próprio desenvolvi há algum tempo e que não a quero tornar pública. Mas é fácil de a substituir, mesmo utilizando funções que já vêm de raíz no PHP. Podem também ver aqui uma função com efeito semelhante à que eu desenvolvi, no entanto não tem nada a ver uma com a outra.

Em vez da função writemail() é mais produtivo ter uma base de dados onde quardar os e-mails e verificar se estes são repetidos ou não...

Podem dar uso à vossa imaginação, aumentar e desenvolver a query, aumentar a performance do script, etc. isto foi só um pequeno exemplo do que se pode fazer com a search do twitter.

Bibliografia

Regex utilizado no meu código: http://www.fromzerotoseo.com/twitter-email-grabber/

Contribua para este blog deixando

a sua opinião e um pouco do seu conhecimento

4 comments

  1. sem querer loguei num site de twitter que fez eu seguir automaticamente pessoas que não conheço
    queria saber como fazer isso parar ;/

    1. Viva Guilherme,

      existem dois métodos de terem tido acesso à sua conta e de o manterem, através dos seus dados (Nome de Utilizador e Password) ou através da funcionalidade OAuth do Twitter.

      No primeiro caso sugiro que altere a sua Password e o caso deve ficar resolvido.

      No segundo caso também é bastante simples, vá a http://twitter.com/account/connections e de seguida clique em Revoke Access no serviço do site que fez com que seguisse automaticamente outros utilizadores.

      Com uma das etapas referidas deve ficar resolvido o problema, caso contrário entre em contacto novamente.

      Cumprimentos,
      João Pedro Pereira

  2. Boa iniciativa, podias era dar alguma informação a post’s anteriores de maneira a que facilita-se a utilização por exemplo no “template system kiss”

    Cumps

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.