将网页表格的内容提取出来
2015-04-18 02:24
260 查看
继昨天的网页抓取之后,后续的处理函数 <?php function get_td_array($table) { $table = preg_replace("/<table[^>]*?>/is","",$table); $table = preg_replace("/<tr[^>]*?>/si","",$table); $table = preg_replace("/<td[^>]*?>/si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); $table = str_replace(" ","",$table); $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); $td = explode('{td}', $tr);//这个函数是将字符串转为数组,{td}为分隔符 array_pop($td); $td_array[] = $td; } return $td_array; } ?> 我们教务处的函数 <?php $url = "http://202.119.81.118:7777/pls/wwwxk/xk.login";//output.php为接受文件,内容为print_r($_POST) /*$post_data = array ( "pwuser" => "jying1314", "pwpwd" => "fff12138" );*/ $cookie_file=tempnam('./temp','cookie'); $post_fields='stuid=学号&pwd=密码'; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL, $url);//要访问的地址 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//执行结果是否被返回,0是返回,1是不返回 curl_setopt($ch, CURLOPT_POST, 1);// 发送一个常规的POST请求 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);//POST提交的数据包 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_TIMEOUT, 30);//设置超时 $output = curl_exec($ch);//执行并获取数据 curl_close($ch); // var_dump($output); $url='http://202.119.81.118:7777/pls/wwwxk/xk.CourseView'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents = curl_exec($ch); $table = preg_replace("/<TABLE[^>]*?>/is","",$contents); $table = preg_replace("/<TR[^>]*?>/is","",$table); $table = preg_replace("/<TD[^>]*?>/is","",$table); $table = str_replace("</TR>","{tr}",$table); $table = str_replace("</TH>","{tr}",$table); $table = str_replace("</TD>","{td}",$table); $table = str_replace(" ","",$table); $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $arr = explode('{tr}', $table); array_pop($arr); // print_r($arr); foreach ($arr as $key=>$tr) { $td = explode('{td}', $tr); $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } // print_r($td_array); // echo "<br>"; // echo $td_array[12][0]; //第二个参数表示列,第一个表示行,且两个一跳 // if(empty($td_array[12][0])){ // echo "这个为空值"; // }else{echo "NO";} for($b=0;$b<=6;$b++){ $c=$b+1; echo "weekend".$c."<br>"; for($i=10; $i<=20; $i=$i+2) {if(!empty($td_array[$i][$b])) { $d=($i-8)/2; echo $d.$td_array[$i][$b]; echo "<br>";}} } /*echo $td_array[1][2]; echo $td_array[1][3]; echo $td_array[1][4]; echo $td_array[1][5];*/ /*$mode="/./"; $string="google"; if(preg_match($mode,$contents,$arr)) {echo "匹配成功".$arr[0]; print_r($arr); } else {echo "匹配不成功";} curl_close($ch);*/ ?>
相关文章推荐
- JS提取网页中表格内容,将特定列内的html文本中id,href,onclick属性提取出来
- 用正则表达式提取网页上表格的内容
- [vb]提取网页中表格内容
- C# 正则提取网页内容
- 用xpath方法提取网页内容保存为json格式
- 用CSS方法提取网页内容
- 提取网页中的中文内容
- 如何提取网页上的内容(C#)
- CURL抓取网页内容并用正则提取。
- 模拟网页分页(注意,这里还是取出来数据库的全部内容,其实应该分页获取)
- 1分钟快速生成用于网页内容提取的xslt
- 提取网页中的内容(提取纯文字VB)
- 网页正文及内容提取算法
- 探讨原创内容之:提取qq群聊天记录作为网页的案例
- 启发式提取一个网页的主体内容
- 用Java的模式匹配来提取网页中所需内容
- 读取excel内容在网页上显示出来
- 如何将网页表格内容导入excel
- HTML网页中table居中和表格内容居中
- 提取动态网页内容