ターゲット コレクション ページには次のコードがあります (サンプル ページ、データは変更される可能性がありますが、形式は変更されません)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><base href="http://218.25.58.44:80/" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>交警查询</title><link href="style/style.css" rel="stylesheet" type="text/css" /><style>.center_td { text-align:center;}</style></head><body><div class="top"><div class="menu"><ul><li><a href="#">网站首页</a></li><li> 沈阳交警</li><li> 交通新闻 </li><li> 视频播放 </li><li> 为您服务 </li><li> 在线办公 </li><li> 信息查询 </li><li> 征求意见 </li><li> 联系我们</ul></div><div class="txt"><!-- 沈阳小雨转小到中雨21~14 今天是:2010年5月28日 -->返回首页 / 设为首页 / 添加搜藏</div></div><div class="main"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" class="lmenu" > <div class="l1"> <h1><a href="#"><img src="images/cxx_04.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> <li>模拟考场</li> <li>电子地图</li> <li>网上车管所</li> </ul> </div> <div class="l1 l2"> <h1><a href="#"><img src="images/cxx_10.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> </ul> </div> <div class="l1 l3"> <h1><a href="#"><img src="images/cxx_12.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> <li>模拟考场</li> <li>电子地图</li> <li>网上车管所</li> </ul> </div> <div class="l1 l4"> <h1><a href="#"><img src="images/cxx_14.png" border="0" /></a></h1> <div class="video"><img src="images/cxx_15.png" /></div> <div class="video"><img src="images/cxx_16.png" /></div> </div> <div class="kjc"> <img src="images/cxx_17.png" /> </div> </td> <td valign="top"> <div class="content"> <h1>在线查询 / 电子警察拍照信息</h1> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tab"> <tr> <td width="30" height="30" class="center_td"> </td> <td width="140" class="center_td">电子警察拍照信息</td> <td width="200" class="center_td">小型汽车</td> <td class="center_td">辽AQ007B</td> </tr> <tr> <td class="center_td" height="30">序 号</td> <td class="center_td">违法时间</td> <td class="center_td" width="200">违法地点</td> <td class="center_td">违法行为</td> </tr> <tr onmouseover="this.style.background='#DAE5FB';" onmouseout="this.style.background='#ffffff';"> <td class="center_td" height="30">1</td> <td class="center_td">2013-02-0711:16</td> <td> 沈阳市永安路</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> </tr> <tr bgcolor="#e5e5e5" onmouseover="this.style.background='#DAE5FB';" onmouseout="this.style.background='#e5e5e5';"> <td class="center_td" height="30">2</td> <td class="center_td">2013-03-0808:34</td> <td> 沈阳市三好街文萃路由南向北</td> <td> 通过路口遇停止信号时,停在停止线以内或路口内的</td> </tr> <tr onmouseover="this.style.background='#DAE5FB';" onmouseout="this.style.background='#ffffff';"> <td class="center_td" height="30">3</td> <td class="center_td">2013-03-2210:16</td> <td> 沈阳市三好街文萃路4号</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> </tr> <tr bgcolor="#e5e5e5" onmouseover="this.style.background='#DAE5FB';" onmouseout="this.style.background='#e5e5e5';"> <td class="center_td" height="30">4</td> <td class="center_td">2013-05-1413:53</td> <td> 沈阳市永安路</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> </tr> <tr onmouseover="this.style.background='#DAE5FB';" onmouseout="this.style.background='#ffffff';"> <td class="center_td" height="30">5</td> <td class="center_td">2013-05-3113:29</td> <td> 沈阳市五里河街</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> </tr> </table> <table width="100%" height="43" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="121"><!-- <img src="images/cxx_07.png" width="121" height="24" /> --></td> <td width="176"><!-- <img src="images/cxx_08.png" width="176" height="24" /> --></td> <td width="176"><!-- <img src="images/cxx_09.png" width="133" height="24" /> --></td> <td align="right"> <img src="images/bk.png" style="cursor:hand;" onclick="javascript:history.back(-1);" /> </td> </tr> </table> </div> </td> </tr></table></div><div class="foot"><p>友情连接:<select name=""> <option>所属单位</option></select> <select name="select"> <option>所属单位</option> </select> <select name="select2"> <option>所属单位</option> </select> <select name="select3"> <option>所属单位</option> </select> <select name="select4"> <option>所属单位</option> </select></p>Copyright 2009 www.sygajj.gov.cn All Rights Reserved<br />版权所有:沈阳市交通警察支队 E-maill:webmaster@www.sygajj.gov.cn 辽ICP备07501079号 邮编:110003<br />站长统计</div></body></html>
preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(.+)</td>\s*<td>(.+)</td>#isU',$s,$m);print_r($m);
preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(.+)</td>\s*<td>(.+)</td>#isU',$s,$m);print_r($m);
必要に応じて、正規表現を使用するのが最も便利です。他に何が必要ですか?
preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(.+)</td>\s*<td>(.+)</td>#isU',$s,$m);print_r($m);
正しく呼び出したかどうかはわかりませんが、出力に望ましくない文字が表示されます。
?Array( [0] => Array ( [0] => <td class="center_td" height="30">1</td> <td class="center_td">2013-02-0711:16</td> <td> 沈阳市永安路</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> [1] => <td class="center_td" height="30">2</td> <td class="center_td">2013-03-0808:34</td> <td> 沈阳市三好街文萃路由南向北</td> <td> 通过路口遇停止信号时,停在停止线以内或路口内的</td> [2] => <td class="center_td" height="30">3</td> <td class="center_td">2013-03-2210:16</td> <td> 沈阳市三好街文萃路4号</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> [3] => <td class="center_td" height="30">4</td> <td class="center_td">2013-05-1413:53</td> <td> 沈阳市永安路</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> [4] => <td class="center_td" height="30">5</td> <td class="center_td">2013-05-3113:29</td> <td> 沈阳市五里河街</td> <td> 违停,驾驶人不在现场,妨碍其他车辆行人通行的</td> ) [1] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) [2] => Array ( [0] => 2013-02-0711:16 [1] => 2013-03-0808:34 [2] => 2013-03-2210:16 [3] => 2013-05-1413:53 [4] => 2013-05-3113:29 ) [3] => Array ( [0] => 沈阳市永安路 [1] => 沈阳市三好街文萃路由南向北 [2] => 沈阳市三好街文萃路4号 [3] => 沈阳市永安路 [4] => 沈阳市五里河街 ) [4] => Array ( [0] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [1] => 通过路口遇停止信号时,停在停止线以内或路口内的 [2] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [3] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [4] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 ))
$s = $p->post($remote_server,$post_string);preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(.+)</td>\s*<td>(.+)</td>#isU',$s,$m);print_r($m);
上記の結果では、3 行目から 25 行目までは不要で、47 行目にもスペースがありますが、これも必要なものではありません。コードを解決しました、ありがとう!
$s = $p->post($remote_server,$post_string);preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(?: )*(.+)</td>\s*<td>(?: )*(.+)</td>#isU',$s,$m);print_r($m);
$s = $p->post($remote_server,$post_string);preg_match_all('#<td class="center_td" height="30">(\d+)</td>\s*<td class="center_td">(.+)</td>\s*<td>(?: )*(.+)</td>\s*<td>(?: )*(.+)</td>#isU',$s,$m);print_r($m);
preg_match_all('#c08d86f1a7545b1191e9ca1caa1f94c9(d+)976844e7802e7d608e1ebaa5e5bc7478#isU', $s,$m);
preg_match_all('#c08d86f1a7545b1191e9ca1caa1f94c9(d+)b90dd5946f0946207856a8a37f441edfs* caa1c82dce06bdcf40b83d91226c3e67(. +)b90dd5946f0946207856a8a37f441edfs*b6c5a531a458a2e790c1fd6421739d1c (.+)b90dd5946f0946207856a8a37f441edfs*b6c5a531a458a2e790c1fd6421739d1c (.+)4f8426b303fd482c2b5cad5323c6ce0d#isU',$s,$m );
今回は正解です
もう 1 つの小さな問題があります。それは、取得した $m が値のない空の配列である場合があるということです。これはどうやって判断すればよいでしょうか。正しい結果が得られないため、クエリを再実行する必要があります。ありがとうございます。空の配列が返された場合の結果は次のとおりです。
Array( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ))
空の場合、データは上記の形式ではありません。 $m[0] が空の配列であるかどうかを判断するだけで済みます。
if(empty($m[0])){
クエリを再度実行します
}
空の場合、データは上記の形式ではありません。 $m[0] が空の配列であるかどうかを判断するだけで済みます。 。
if(empty($m[0])){
クエリを再度実行します
}
おっしゃるとおり、空の場合、上記の形式でないと正規表現でエラーになります(笑)。正規表現の前に判断する必要があります。 $sに「認証コードの入力が間違っています。再入力してください!」があるかどうかを判断する必要があるのですが、書き方が分かりません。
<td colspan="2"> 验证码输入有误,请重新输入! </td>
strpos() を使って判断するだけですよね?
エラーが発生すると上記のプロンプトが表示されますよね?
if(strpos($s,'認証コードが間違って入力されました。再入力してください!') !==false){
....クエリを再実行....
}
は、エラーが発生したときに表示されます それは上記のヒントですか?
if(strpos($s,'認証コードが正しく入力されていません。再入力してください!') !==false){
....クエリを再度実行します....
}
別の必要性通常の部分を書くことができません、読むのを手伝ってください、ありがとうございます
対象ページアドレス: http://218.25.58.44/searchsys/
収集されるデータは次のとおりです: 「データの最終更新日は 6 月 9 日です」 、2013 」
ルールを聞いてください!
ターゲットは 183 行目です。このページのソース コードは次のとおりです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><base href="http://218.25.58.44:80/" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>交警查询</title><link href="style/style.css" rel="stylesheet" type="text/css" /><script>function trim(val) { var str = val+""; if (str.length == 0) return str; var re = /^\s*/; str = str.replace(re,''); re = /\s*$/; return str.replace(re,'');}function chkForm1(form) { if ((trim(form("wzcx.autono").value) == "") || (trim(form("wzcx.autono").value).length < 7)) { alert("请输入有效的车牌号!"); form("wzcx.autono").focus(); return false; } if ((trim(form("wzcx.memo").value) == "") || (trim(form("wzcx.memo").value).length < 4)) { alert("请输入车辆识别代码后四位!"); form("wzcx.memo").focus(); return false; } if (trim(form("rand").value) == "") { alert("请输入验证码!"); form("rand").focus(); return false; }}function chkForm2(form) { if (trim(form.cardno.value) == "") { alert("请输入有效的档案编号!"); form.cardno.focus(); return false; } if (trim(form.idno.value) == "") { //alert("请输入有效的证件号码!"); alert("请输入有效的身份证号码!"); form.idno.focus(); return false; } if (trim(form.rand2.value) == "") { alert("请输入验证码!"); form.rand2.focus(); return false; }}</script></head><body><div class="top"><div class="menu"><ul><li><a href="#">网站首页</a></li><li> 沈阳交警</li><li> 交通新闻 </li><li> 视频播放 </li><li> 为您服务 </li><li> 在线办公 </li><li> 信息查询 </li><li> 征求意见 </li><li> 联系我们</ul></div><div class="txt"><!-- 沈阳小雨转小到中雨21℃~14℃ 今天是:2010年5月28日 -->返回首页 / 设为首页 / 添加搜藏</div></div><div class="main"><table width="100%%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" class="lmenu" > <div class="l1"> <h1><a href="#"><img src="images/cxx_04.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> <li>模拟考场</li> <li>电子地图</li> <li>网上车管所</li> </ul> </div> <div class="l1 l2"> <h1><a href="#"><img src="images/cxx_10.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> </ul> </div> <div class="l1 l3"> <h1><a href="#"><img src="images/cxx_12.png" border="0" /></a></h1> <ul> <li>业务指南</li> <li>表格下载<br />机动车驾驶人身体条件证<br />机动车驾驶申请表…</li> <li>自助报名</li> <li>模拟考场</li> <li>电子地图</li> <li>网上车管所</li> </ul> </div> <div class="l1 l4"> <h1><a href="#"><img src="images/cxx_14.png" border="0" /></a></h1> <div class="video"><img src="images/cxx_15.png" /></div> <div class="video"><img src="images/cxx_16.png" /></div> </div> <div class="kjc"> <img src="images/cxx_17.png" /> </div> </td> <td valign="top"> <div class="content"> <p> </p> <table width="100%%" height="101" border="0" cellpadding="3" cellspacing="0"> <!-- 电子警察拍照信息 --> <tr> <td width="78" height="44"> <b>电子警察拍照信息</b></td> </tr> <form action="search/wzcxrs.action" method="post" name="wfxxForm" id="wfxxForm" onsubmit="return chkForm1(this);"> <tr> <td height="44"><table width="100%" border="0" cellspacing="3" cellpadding="1"> <tr> <td>车型 <select name="wzcx.autotype" id="wzcx.autotype" style="width:90px;"> <option value="小型汽车">小型汽车</option> <option value="大型汽车">大型汽车</option> <option value="外籍汽车">外籍汽车</option> <option value="临时行驶车">临时行驶车</option> <option value="挂车">挂车</option> <option value="原农机号牌">原农机号牌</option> <option value="农用运输车">农用运输车</option> </select></td> <td>车牌号 <input name="wzcx.autono" type="text" class="input" id="wzcx.autono" size="8" maxlength="20" value="辽A" onkeyup="this.value=this.value.toUpperCase();" /></td> <td>车辆识别代码后四位 <input name="wzcx.memo" type="text" class="input" id="wzcx.memo" size="5" maxlength="4" onkeyup="this.value=this.value.toUpperCase();" /></td> <td>验证码<span style="font-size:18px; font-weight:bold; color:#CA0906; "> <input name="rand" type="text" class="input" id="rand" size="5" maxlength="4" /> <img id="img1" src="/searchsys/img.jsp" width="55" height="23" border="0" onclick="javascript:this.src='/searchsys/img.jsp';" alt="看不清,请点击" style="cursor:hand;"/></span></td> <td><input type="image" src="images/cxx_06.png" width="78" height="24" /></td> </tr></table> <br /></td> </tr> </form> <!-- 驾驶员积分信息 --> <tr> <td height="43"> <b>驾驶员信息</b></td> </tr> <form action="search/jsyxxrs.action" method="post" name="jsyxxForm" id="jsyxxForm" onsubmit="return chkForm2(this);"> <tr> <td height="43"><table width="100%" border="0" cellspacing="3" cellpadding="1"> <tr> <td><!--证件类型-->档案编号 <!--<select name="idtype" id="idtype" style="width:100px;"> <option value="1">档案编号</option> <option value="2">身份证号</option> </select>--> <input name="cardno" type="text" class="input" id="cardno" size="18" maxlength="50" /></td> <td><!--号码-->身份证号码 <input name="idno" type="text" class="input" id="idno" size="22" maxlength="50" /></td> <td>验证码<span style="font-size:18px; font-weight:bold; color:#CA0906; "> <input name="rand2" type="text" class="input" id="rand2" size="5" maxlength="4" /> <img src="/searchsys/img2.jsp" width="55" height="23" border="0" onclick="javascript:this.src='/searchsys/img2.jsp';" alt="看不清,请点击" style="cursor:hand;"/> </span></td> <td><input type="image" src="images/cxx_06.png" width="78" height="24" /></td> </tr> </table> <br /></td> </tr> </form> </table> <div> <br/><center> <!--img src="sm.gif" width="531" height="239" /--> </center><br/> <hr/><br/> <center>数据最后更新至2013年6月9日</center> </div> <!-- 按按 -- <table width="100%%" height="76" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="121"><!-- <img src="images/cxx_07.png" width="121" height="24" /> --></td> <td width="176"><!-- <img src="images/cxx_08.png" width="176" height="24" /> --></td> <td width="176"><!-- <img src="images/cxx_09.png" width="133" height="24" /> --></td> <td align="right"></td> </tr> </table> </div> </td> </tr></table></div><div class="foot"><p>友情连接:<select name=""> <option>所属单位</option></select> <select name="select"> <option>所属单位</option> </select> <select name="select2"> <option>所属单位</option> </select> <select name="select3"> <option>所属单位</option> </select> <select name="select4"> <option>所属单位</option> </select></p>Copyright 2009 www.sygajj.gov.cn All Rights Reserved<br />版权所有:沈阳市交通警察支队 E-maill:webmaster@sygajj.gov.cn 辽ICP备07501079号 邮编:110003<br /><script src="http://s11.cnzz.com/stat.php?id=2228263&web_id=2228263" language="JavaScript"></script></div></body></html>
preg_match('#bacbf9e1ad7f40415ce1670e31edfee3(.+?)adca8a5fa06ffeafb062c2e3f274b930#',$s,$m) ;
echo $m[1];
女の子は質問にすぐに答えます。