您好我如何使用curl和php从其他网站搜索数据。我想从这个网站https://www.example.com/xxx
搜索imei号码这是我到目前为止所尝试的
$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 ;
答案 0 :(得分:0)
(这不是一个完整的答案,但是要发表评论的时间太长了。我无法为你找出所有小细节而感到沮丧)
这里有几个不同的问题,第一个是如何用php / curl做一个POST请求,你可以在其中找到一个例子here。
另一个问题是,如何在PHP中解析HTML,其中列出了here个选项。 (我强烈推荐DOMDocument&amp; DOMXPath组合)
另一个问题,是如何通过PHP中的CAPTCHA挑战,1解决方案是使用deathbycaptcha API(顺便说一下,这是付费服务),你可以找到here的一个例子。 / p>
另一个问题是,他们使用了3个不同的类似CSRF的令牌,称为__VIEWSTATE
,__EVENTVALIDATION
和hdnCaptchaInstance
,所有这些令牌都必须解析并提交验证码答案。您还需要处理cookie,因为CSRF令牌和验证码与您的cookie会话相关联(幸运的是,您可以使用CURLOPT_COOKIEFILE让curl自动处理cookie)