这几天年而不休一直都在研究如何采集一个交通警察违章查询页面,
但是累次都已失败告终,
现在实在没有办法了,但是不想放弃,望好心人帮忙看看!现在说说我的情况和遇到的问题。正常提交可以得出违章数据:
但是当我用curl 或 snoopy 提交时候都出现(查询不出任何正常提交的记录)以下是我的代码,请问代码有问题吗?是不是漏了些什么
<?PHP
//定义用来保存cookie的文件
$cookie_file = dirname(__FILE__).'/cookie.txt';
if(!empty($_GET['act']) && $_GET['act'] == 'img'){
//第一步采集图片顺便生成cookies
$imgURL = "http://jj.gdga.gov.cn/servlet/ImageServlet";
//获取待查询页面的随机码,设置待查询页面的cookie
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL,$imgURL);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
$strURL = curl_exec ($ch);
curl_close ($ch);
unset($ch);
exit;
}
if(!empty($_GET['randcode2']) && $_GET['randcode2']){
//第二步,将随机码以及一些相关的数据提交到查询页面,并分析最终结果
//查询页面
$queryURL = "http://jj.gdga.gov.cn/wzss/wzss!search.action";
//POST串
$strPOST = "jc=粵&hphm=sl8039&hpzl=02&clsbdh=011471&randcode2=".$_GET['randcode2'];
//user_agent
$useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
//伪造header
$header = array('Accept-Language: zh-CN','Accept-Encoding: gzip, deflate','Host: jj.gdga.gov.cn','Connection: Keep-Alive','Cache-Control: no-cache');
//偽造referer
$refererURL = "http://jj.gdga.gov.cn/wzss/searchwzss.jsp";
$ch = curl_init();
 curl_setopt($ch, CURLOPT_HEADER, 1); 
//伪造REFERER,HEADER,USERAGENT
curl_setopt($ch, CURLOPT_REFERER, $refererURL);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//设置cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
//curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
//设置curl_exec返回结果不直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//设置URL,POST方式提交以及POST数据
curl_setopt($ch, CURLOPT_URL, $queryURL);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $strPOST); $result = curl_exec($ch);
echo $result;
exit;
}
?>
<form action="" method="GET">
<input type="text" name="randcode2"> 
<img src="?act=img"> 
<input type="submit" value="submit">
</form-->