微信公众平台开发(94) 违章查询
来源:互联网 发布:2017网络事件营销 编辑:程序博客网 时间:2024/04/28 18:47
在微信公众平台开发违章查询是一件比较辛苦的事,因为违章查询的数据在各省市公安部门的服务器上,对外只有网页查询提供,所以只有去分析网页,然后通过模拟提交来实现。
黑龙江违章查询地址为 http://www.hljjj.gov.cn:8081/Home/Wfcx
实际查询时,抓取到的请求如下
通过查看网页源码得到验证:
1 <script type="text/javascript"> 2 function error() { 3 showDialog(false); 4 alert("数据库繁忙,请稍后重试!"); 5 } 6 function beforesend() { 7 showDialog(true); 8 } 9 /** --------- AJAX ------------ */10 function queryajax() {11 var ajaxRequest = new AjaxRequest();12 ajaxRequest.setUrl("/Home/getWfcx"); //请求之前13 ajaxRequest.setDataType("json");14 ajaxRequest.setUsePOST(); //post方式15 ajaxRequest.setBeforeSend(beforesend); //请求之前16 ajaxRequest.setSuccess(querysuccess); //请求成功17 ajaxRequest.setError(error); //请求失败18 var queryString = "";19 var hpzl = $("#hpzl").val();20 var dy = $("#dy").val();21 var xzqh = $("#xzqh").val();22 var hphm = $("#hphm").val();23 var clsbdh = $("#clsbdh").val();24 var jkbj = $("input[name='jkbj'][checked]").val();25 var yzm = $("#yzm").val();26 queryString = "hpzl=" + hpzl + "&dy=" + dy + "&xzqh=" + xzqh + "&hphm=" + hphm + "&clsbdh=" + clsbdh + "&jkbj=" + jkbj;27 ajaxRequest.setQueryString(queryString);28 ajaxRequest.sendRequest();29 }30 31 function querysuccess(json) {32 var json_data = json;33 showDialog(false);34 if (json_data[0] == "0") {35 $('#comments').empty();36 $('#comments').append(json_data[2]);37 } else {38 $('#comments').empty();39 alert(json_data[1]);40 }41 img();42 }43 function img() {44 $('#imgDefault').attr('src', '/Home/Yzm?time=' + (new Date().getTime()));45 }46 $(document).ready(function () {47 img();48 });49 </script>
可以看到,实际查询路径为 /Home/getWfcx,也就是说,真实的查询地址为
http://www.hljjj.gov.cn:8081/Home/getWfcx
查询请求为
hpzl=02&dy=黑&xzqh=A&hphm=EZ352&clsbdh=LGBF1DE099R156742&jkbj=0&ts=1396242672751
返回的内容如下:
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="list_table" align="center"><tr height='20px' class="list_head"><td width='6%'>号牌号码</td><td width='6%'>号牌种类</td><td width='10%'>违法时间</td><td width='5%'>金额</td><td width='3%'>记分</td><td width='5%'>缴款状态</td><td width='5%'>处理状态</td><td width='18%'>违法地点</td><td width='15%'>违法内容</td><td width='12%'>决定书编号</td><td width='15%'>采集机关</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-12-30 15:14:00</td><td>100</td><td>3</td><td>未缴款</td><td>未处理</td><td>国道绥满公路578公里</td><td>驾驶中型以上载客载货汽车、危险物品运输车辆以外的其他机动车行驶超过规定时速未达20%的</td><td></td><td>黑龙江省绥化市肇东市交警大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-7-16 14:37:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>比优特旗舰店</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-7-15 18:42:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>比优特旗舰店</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-6-26 9:41:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>防疫站</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-6-17 12:40:00</td><td>100</td><td>3</td><td>未缴款</td><td>未处理</td><td>哈尔滨市-铁路街全路段</td><td>违反禁止标线指示</td><td></td><td>巡逻大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-6-7 10:44:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>市农行道口</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-5-26 18:37:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>老交通局</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr><tr class='list_body_out' onMouseOver="this.className='list_body_over'" onMouseOut="this.className='list_body_out'"><td>黑AEZ352</td><td>小型汽车</td><td>2013-5-14 9:13:00</td><td>100</td><td>0</td><td>未缴款</td><td>未处理</td><td>老交通局</td><td>不按规定停车</td><td></td><td>黑龙江省鹤岗处罚大队</td></tr></table>
其返回的结果不是一个标准的json,而是一个网页格式,所以还需要html解析处理,
而对于请求发送,直接构造字符串用curl进行POST提交
实现代码如下:
1 function getTrafficInfo($longnumber) 2 { 3 if (!preg_match("/^违章#黑[A-Ra-r]\w{5}#\w{17}$/",$longnumber)){ //城市简拼 4 return "查询格式错误!\n请发送'违章#车牌号码#机动车识别代号'\n例如'违章#黑AEZ352#LGBF1DE099R156742'"; 5 } 6 7 $headers = array( 8 "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1", 9 "Accept: application/json, text/javascript, */*",10 "Accept-Language: en-US,en;q=0.8",11 "Referer: http://www.hljjj.gov.cn:8081/Home/Wfcx",12 "X-Requested-With: XMLHttpRequest",13 "Content-Type: application/x-www-form-urlencoded",14 );15 16 $numberarray = explode ("#", $longnumber);17 $provinceCode = substr($numberarray[1], 0, 3);18 $cityCode = substr($numberarray[1], 3, 1);19 $plateNumber = substr($numberarray[1], 4, strlen($numberarray[1]) - 4);20 $vehicleNumber = $numberarray[2];21 $curTime = explode (" ", microtime());22 $curMicroTime = round($curTime[1].($curTime[0]*1000));23 24 $post2 = "hpzl=02&dy=黑&xzqh=$cityCode&hphm=$plateNumber&clsbdh=$vehicleNumber&jkbj=0&ts=$curMicroTime";25 26 $ch = curl_init();27 curl_setopt($ch, CURLOPT_URL, "http://www.hljjj.gov.cn:8081/Home/getWfcx");28 curl_setopt($ch, CURLOPT_HEADER, false);29 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);30 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);31 curl_setopt($ch, CURLOPT_POSTFIELDS, $post2);32 $content=curl_exec($ch);33 curl_close($ch);34 $output = json_decode($content, true);35 36 if($output[0] != "0"){37 return "【错误】类型:".$output[0].", 原因:".$output[1];38 }else{39 $str = $output[2];40 include('simple_html_dom.php');41 $html = str_get_html($str);42 $result = "";43 $titleArray = array("号码", "种类", "时间", "金额", "记分", "缴款", "处理", "地点", "内容", "编号", "机关");44 foreach($html->find('table tr') as $tr){45 if ($tr->find('td', 0)->innertext == "号牌号码"){46 continue;47 }48 for ($i = 2; $i <= 10; $i++) {49 $result .= $titleArray[$i].":".$tr->find('td', $i)->innertext."\n";50 }51 $result .= "\n";52 if (strlen($result) > 2000){break;}53 }54 return trim($result);55 }56 }
====================================================================
方倍工作室微信公众平台账号关注方法:
1. 微信通讯录-添加朋友-查找公众号-搜索“方倍工作室”
2. 微信通讯录-添加朋友-搜号码-输入“pondbaystudio”
3. 使用微信扫描下面的二维码
0 0
- 微信公众平台开发(94) 违章查询
- 微信公众平台开发--快递查询
- 微信公众平台开发--快递查询
- 微信公众平台开发:高级篇(微信公众平台接口开发:(5)股票查询)
- 微信公众平台开发(43)火车时刻查询
- 微信公众平台开发之-签到积分查询功能
- 微信公众平台开发(43)火车时刻查询
- 微信公众平台开发(63)汽车查询
- 微信公众平台开发(68)苹果IMEI查询
- 微信公众平台开发(63)汽车查询
- 微信公众平台开发(68)苹果IMEI查询
- 微信公众平台开发之天气查询功能
- 微信公众平台开发之签到积分查询功能
- 微信公众平台开发之图书查询功能
- 微信公众平台开发--天气查询和发送
- 微信公众平台开发之新闻查询功能
- 微信公众平台开发(103) 四六级成绩查询
- 微信公众平台消息接口开发---快递查询
- 微信支付体验
- MAC[10.9.3]下配置php开发环境,#2002号错误
- 微信公众平台开发(73) 客服接口发送客服消息
- SIP注册信令消息示范及解释
- 延迟加载问题
- 微信公众平台开发(94) 违章查询
- 微信支付类目及费率
- 微信5.2
- 朋友圈我快看不下去了!
- Oracle函数
- 公众号我也快看不下去了
- Android 源码编译make的错误处理
- 2014,微信是糖,甜到忧伤
- 微信公众平台开发(75) 语音识别