Coletar informações de um site

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?

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.

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”

1 curtida

Esse cara é uma enciclopédia dos dev.

isso, irei utilizar a porta 80.

A máquina aceita acesso externo.