【发布时间】:2018-10-09 02:21:59
【问题描述】:
我之前制作了一个代码,允许我查询我通过 GET 发送的外部网页,它显示了一个人的姓名和姓氏。该代码运行良好,是这样的:
function nome($id)
{
$url = 'https://www.dateas.com/es/consulta_cuit_cuil?name=&cuit='.$id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER,array("Accept-Lenguage: es-es,es"));
curl_setopt($ch, CURLOPT_TIMEOUT,10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$html = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
preg_match_all('/<tr class="odd"><td><a href="(.*?)">/',$html ,$matches);
if (count($matches[1]) == 0)
{
$result = "Error in the server";
}
else if(count($matches[1]) == 1)
{
$result = $matches[1][0];
$result = str_replace('/es/persona/','', $result);
$result = substr($result, 0,-12);
$result = str_replace('-', ' ', $result);
$result = ucwords($result);
}
return $result;
}
$Name = nome($_GET['id']);
echo "<br><br>The name of the person is : ". $Name;
此代码运行良好,但现在我需要从另一个网站提取此信息,但为此我必须先在该网页上登录,然后转到查询部分并输入 ID,单击搜索按钮并然后页面返回此人的信息。该网站不是通过 GET 而是通过 POST 请求来搜索和显示一个人的信息。
我的问题是我不知道如何在这个新页面中提取信息,因为我必须先登录然后查找输入其 ID 的人,但请求由 POST 处理。
如何通过 CURL 或任何其他 PHP 方法获取查询人的信息?
这是用于进入进行查询的 Web 的登录表单的页面:http://buscardatos.com/Socios/ingresso.php
登录后,我们应该去:http://www.buscardatos.com/Personas/DNI
有一个输入id的文本字段,单击搜索按钮会显示此人的信息。
网站通过 POST 发出请求。我尝试使用此处显示的相同代码,但它会引发“找不到页面”的错误。
您能帮我提供一些有关如何解决此问题的代码或信息吗?
【问题讨论】:
-
我建议您自己尝试一下,在发送登录请求时使用工具捕获数据,以便您可以尝试通过 PHP Curl 复制它。
标签: php ajax web-services http-headers php-curl