Coletar informações de um site

4 respostas
jqueryjavascriptphp
Y

Bom dia, galera!

Alguém poderia me ajudar em um projeto pessoal ?

É o seguinte… Preciso acessar um site , autenticar e coletar algumas informações do site, então fiz o seguinte código:

<?php
	$usuario = 'user';
	$senha = 'password';


	$url = 'http://agiletesters.com.br'; 


	$ch = curl_init();
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
	curl_setopt($ch, CURLOPT_PORT, 8080);
	curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
	curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');


	$html_form = curl_exec($ch);
	
	if ($html_form) {
	$documento = new DOMDocument;
	$documento->loadHTML($html_form);
	$inputs = $documento->getElementsByTagName('input');


	foreach ($inputs as $input){
	$post[$input->getAttribute('name')] = $input->getAttribute('value'); 
	}
	$post['username'] = $usuario;
	$post['password'] = $senha;


	curl_setopt($ch,CURLOPT_POST,true);
	curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));
	$retorno = curl_exec($ch);
	echo $retorno;


	}else{
	echo curl_error($ch);
	}
	curl_close($ch);

?>

então… Este é o código, sendo que, toda vez que executo, ele me retorna o erro:

Failed to connect to agiletesters.com.br port 80: Connection refused

o que posso fazer quanto a isto ? tem alguma outra forma de fazer isso?

4 Respostas

peczenyj

vejamos.

primeiro, por que isso?

curl_setopt($ch, CURLOPT_PORT, 8080); ? vc nao quer acessar a porta 80?

segundo, vc sabe se a maquina que vc usa como sevidor tem acesso ao mundo externo? se sim como?

as vezes as maquinas que fazem hosting são bloqueadas para fazer esse tipo de coisa, vc precisa conversar com o suporte.

ou talvez vc precise usar um PROXY para ter acesso ao mundo exterior.

peczenyj

só mais uma coisinha.

esse dominio usa cloudflare.

vc pode ter uma surpresa se não utilizar um User Agent que se passe por um browser real. talvez vc ainda tenha conectividade mas o seu request pode ser identificado ( ip de origem, header user-agent, etc ) como sendo provavelmente um bot ou algo não legitimo e ai vc é bloqueado.

se vc usa uma empresa de hosting q ja foi usada por uma farm de DDoS então talvez seja mais dificil vc fingir que é um acesso “real”

ENGENHEIRO_DE_SOFTWA

Esse cara é uma enciclopédia dos dev.

Y

isso, irei utilizar a porta 80.

A máquina aceita acesso externo.

Criado 11 de outubro de 2018
Ultima resposta 11 de out. de 2018
Respostas 4
Participantes 3