Como fazer login e enviar dados HTML usando apenas PHP

Recentemente eu estava procurando uma solução para automatizar uma tarefa que faço diariamente que é basicamente logar em alguns sites e preencher os formulários com relatórios, as informações são as mesmas e os forms também são praticamente iguais.
O problema então seria criar um script que automatizasse essa tarefa que é praticamente um control-c control-v…

Qual a solução?

http://snoopy.sourceforge.net/

Snoopy é uma classe PHP que simula um navegador web. Ele automatiza o
tarefa de recuperar o conteúdo da página web e enviar formulários, por exemplo.

Algumas das características do Snoopy:

* busca conteúdo de uma página web;
* busca textos de uma página web (retirando as tags HTML)
* buscar links a partir de uma página web
* suporta proxy
* suporte a autenticação usuário / senha
* suporta a configuração de  user_agent, referer, cookies e conteúdo do cabeçalho
* suporta redirecionamentos
* envia dados de formulário e recuperar os resultados
* aceita cookies

Para começar a brincar com o Snoopy basta copia-lo para o diretório de seu projeto,dar um include em sua classe e criar o novo objeto.

<?php
include "Snoopy.class.php";
$snoopy = new Snoopy;
?>

Exemplo básico de uso:

<?php
/*
Baixe snoopy.class.php em
http://snoopy.sourceforge.net/
*/
include("snoopy.class.php");
$snoopy = new Snoopy;
// definido um proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";
// definindo um user agent e referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
// definindo algumas cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";
// definido raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";
// definido algumas variáveis internas:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
// definindo nome de usuário e senha(opcional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";
// buscar texto no site www.google.com::
if($snoopy->fetchtext("http://www.google.com")){
// outros métodos: buscar, buscar em forms, busca de links, enviar textos e enviar links
// código de resposta:
print "código de resposta: ".$snoopy->response_code."n";
// imprimir os cabeçalhos(headers):
print "Headers:";
while(list($key,$val) = each($snoopy->headers)){
print $key.": ".$val."n";
}
print "n";
// imprimir os textos do site:
print "<pre>".htmlspecialchars($snoopy->results)."</pre>n";
} else { print "Snoopy: Erro ao buscar documento: ".$snoopy->error."n"; } ?>
Compartilhe Também:

Comentários(2)

Deixe seu comentário