Enrole o formulário post e obtenha o resultado

0

Eu encontrei este site link , que localiza o provedor do telefone por número (ex: link ) mostra VERIZON CALIFORNIA INC.-CA (GTE). Eu estou tentando obter o resultado usando o linux curl e através do php curl, mas recebo "Você deve inserir mais dígitos numéricos." como se nenhum dado fosse enviado. Eu tentei métodos abaixo e eles não funcionam. O que está errado e como posso obter resultados?

curl --data "npa=562&nxx=866&thoublock=1666&usaquerytype"  \
     link --header "Content-Type:text/html"

também tentou x-www-form e com este script:

<?
//extract data from the post
extract($_POST);

//set POST variables
$url = 'link';
$fields = array('npa' => urlencode(544), );

//url-ify the data for the POST
foreach($fields as $key=>$value) { 
   $fields_string .= $key.'='.$value.'&'; 
}
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);
echo "$result";
//close connection
curl_close($ch);
?>

Todos os métodos resultam em "Você deve inserir mais dígitos numéricos".

    
por harold drake 04.07.2015 / 00:00

2 respostas

1

Sua solicitação usa o método GET, o que significa que a consulta é codificada no URI.

Veja aqui para mais informações link

Você precisa gerar e anexar a string de consulta ao URL por exemplo. findome.php? npa = 562 & nxx = 866 ...

<?php
$url = "http://www.fonefinder.net/findome.php";
$query = array('npa'=>562,'nxx'=>866,'thoublock'=>1666,'usaquerytype');
$url .= sprintf("?%s", http_build_query($query, '', '&'));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
echo "$result";
?>
    
por 04.07.2015 / 06:06
0

(Eu formatei sua mensagem um pouco para torná-la mais legível).

Se você fizer o acima, você receberá a mesma mensagem de erro em um navegador também, por isso não é culpa do cURL.

Gostaria de saber onde você encontrou o formato? Se você fizer isso manualmente, a consulta é apenas um GET normal:

http://www.spokeo.com/reverse-phone-lookup/search?p=1234567890&sea2=t104

em que 123456790 é um número de telefone de 10 dígitos. Eu suspeito que sea2 seja um identificador de sessão, que você obtém da página anterior.

EDIT: É um pouco diferente. O pedido é ainda mais fácil:

GET /search?q=1234567890

Isto dá um erro 302 (realocação) que seu programa deve processar e fazer um GET para o primeiro URL que eu passei.

    
por 04.07.2015 / 02:21

Tags