自己写的一个正则表达式抓取页面内容

来源:互联网 发布:hadoop linux版本下载 编辑:程序博客网 时间:2024/05/05 18:47

前两天有空,自己写了一个正则表达式,抓取html页面中标签内的内容

 

页面内容:

<table cellspacing="0" cellpadding="3" rules="all" bordercolor="#B5D6E6" border="1" id="ctl00_ContentPlaceHolder1_DataListBill_ctl00_GridViewBill" bgcolor="White" width="100%">
     <tr class="HeaderRow">
          <th scope="col" bgcolor="#F3F3F3" width="82">日期</th>

          <th scope="col" bgcolor="#F3F3F3" width="45">时间</th>

          <th scope="col" bgcolor="#F3F3F3" width="339">跟踪记录</th>
     </tr>

   <tr class="Row">
      <td width="82">2011-01-12</td><td width="45">20:24</td>

      <td align="left" width="339">

             <a href="#" ><font color=#FF0000> 北京上地 </font></a>

             <a href="#"><font color=#0000FF> 杨金辉 </font></a>已收件,进入公司分捡</td>
     </tr>

    <tr class="AlternatingRow">
          <td width="82">2011-01-12</td><td width="45">20:25</td>

          <td align="left" width="339">快件离开<a href="#"><font color=#FF0000> 北京上地 </font></a>

         ,已发往<a href="#" ><font color=#FF0000> 北京 </font></a></td>
     </tr>

     <tr class="Row">
          <td width="82">2011-01-12</td><td width="45">23:25</td>

          <td align="left" width="339">快件到达<a href="#"><font color=#FF0000> 北京 </font></a>

           ,正在分捡中,上一站是<a href="#"><font color=#FF0000> 北京上地 </font></a></td>
     </tr>

     <tr class="AlternatingRow">
          <td width="82">2011-01-12</td><td width="45">23:37</td>

         <td align="left" width="339">快件离开<a href="#"><font color=#FF0000> 北京 </font></a>

         ,已发往<a href="#" ><font color=#FF0000> 天津 </font></a></td>
     </tr>

     <tr class="AlternatingRow">
          <td width="82">2011-01-14</td><td width="45">17:17</td>

          <td align="left" width="339"><a href="#"><font color=#FF0000> 北辰一部 </font></a>

          <a href="#"><font color=#0000FF> 北辰一部 </font></a>正在派件</td>
     </tr>

     <tr class="Row">
          <td width="82">2011-01-13</td><td width="45">21:44</td>

         <td align="left" width="339">快件离开<a href="#" ><font color=#FF0000> 天津 </font></a>

         ,已发往<a href="#"><font color=#FF0000> 北辰一部 </font></a></td>
     </tr>
 </table>

 

下面是PHP代码部分:

 

<?php
   $Info = array();
   $content = file_get_contents("test.htmll");    //上面的代码是在test.html文件里的

   $questionInfo = preg_replace('/[/r/t/n/s]*/is',"",$questionInfo);

   $preg = "/(?:(?:<tr(?:[^/>]*)>)

                            (?:<td(?:[^/>]*)>([^/>]*)<//td>)

                           (?:<td(?:[^/>]*)>([^/>]*)<//td>)

                           (?:<td(?:[^/>]*)>([^>]*)<a(?:[^/>]*)><font(?:[^/>]*)>([^/>]*)<//font><//a>([^>]*)

                          <a(?:[^/>]*)><font(?:[^/>]*)>([^/>]*)<//font><//a>([^/>]*)<//td>)<//tr>)+?/is";
   preg_match_all($preg,$content,$Info,PREG_SET_ORDER);

   print_r($info);

 

PS:第一次写这种抓取规则,写的不好,各位看官要是有什么改进意见,还请指正!

 

原创粉丝点击