如何使用curl从其他网站搜索数据

how to search data from other website using curl

您好,我如何使用 curl 和 php 从其他网站搜索数据。我想从这个网站搜索 imei 号码 https://www.example.com/xxx

这是我目前尝试过的方法

$imei = '013887009861498';

$cookie_file_path = "cookies/cookiejar.txt"; 
$fp = fopen("$cookie_file_path","w") or die("<BR><B>Unable to open cookie file $mycookiefile for write!<BR>");
fclose($fp); 


    $url="https://example.com/xxx"; 
    $agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$imei);
        curl_setopt($ch, CURLOPT_USERAGENT, $agent);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
        $result = curl_exec ($ch);

        echo $result ;

(这不是一个完整的答案,但太长了,无法作为评论。我懒得为你弄清楚所有的小细节)

这里有几个不同的问题,第一个是如何用php/curl做一个POST请求,你可以找到一个例子here.

另一个问题,就是如何解析PHP中的HTML,其中列出了几个选项here。 (我强烈推荐 DOMDocument 和 DOMXPath 组合)

另一个问题,是如何通过 PHP 中的 CAPTCHA 挑战,1 解决方案是使用 deathbycaptcha API(顺便说一句,这是一项付费服务​​),您可以找到一个.

的例子

另一个问题是他们使用了 3 种不同的类似 CSRF 的令牌,称为 __VIEWSTATE__EVENTVALIDATIONhdnCaptchaInstance,所有这些都必须解析并提交验证码答案。您还需要处理 cookie,因为 CSRF 令牌和验证码与您的 cookie 会话相关(幸运的是,您可以让 curl 使用 CURLOPT_COOKIEFILE 自动处理 cookie)