///2016/10/28//
//by xbw///
閒來無事,抓點資料,之前看學弟的python抓取正方特別牛,
查了點資料學習了一下,使用的php。
<?php
/** * created by phpstorm.
* user: xubowen
* date: 2016/10/27
* time: 下午10:30
*/echo decodeunicode(json_encode(classresult("2014010***xx","********")));
//unicode轉utf-8
function decodeunicode($str)
)/i',
create_function(
'$matches',
'return mb_convert_encoding(pack("h*", $matches[1]), "utf-8", "ucs-2be");'
),$str);
}//獲取隱藏值
function getview()
//獲取cookie
function login($xh,$pwd)
//返回教室查詢頁面的隱藏值
function getviewjs($cookie,$xh)";
$result = curl_request($url,'',$cookie);
$pattern = '//is';
preg_match_all($pattern, $result, $matches);
$res[0] = $matches[1][0];
return $res[0] ;
}function curl_request($url,$post='',$cookie='', $returncookie=0)
if($cookie)
curl_setopt($curl, curlopt_header, $returncookie);
curl_setopt($curl, curlopt_timeout, 20);
curl_setopt($curl, curlopt_returntransfer, 1);
$data = curl_exec($curl);
if (curl_errno($curl))
curl_close($curl);
if($returncookie)else
}//返回課表字串
function classresult($xh,$pwd)
"; $result = curl_request($url, '', $cookie);
preg_match_all('/([\w\w]*?)/', $result, $out);
$table = mb_convert_encoding($out[0][0], "utf-8","gb2312");
preg_match_all('/([\w\w]*?)/', $table, $out);
$td = $out[1];
$length = count($td);
//獲得課程列表
for ($i = 0; $i < $length; $i++) /";
if (!preg_match_all($reg, $td[$i], $matches))
}$td = array_values($td); //將課程列表陣列重新索引
//將課表轉換成陣列形式
function converttotable($table)
}break;}}
$list[$weekarrayday][$weekarrayorder] = $class;
}return $list;
}//呼叫函式
return converttotable($td);
} else
}//空自習室
function roomresult()";
$result = curl_request($url,'',$cookie); //儲存的cookies
$url="";
$post['button2'] = iconv('utf-8', 'gb2312', '空教室查詢');
$post['__eventargument']='';
$post['__eventtarget']='';
$post['__viewstate'] = $this->getviewjs($cookie,$xh);
$post['ddldsz'] = iconv('utf-8', 'gb2312', '單');
$post['ddlsyxn'] = '2014-2015'; //學年
$post['ddlsyxq'] = '1';
$post['jslb'] = '';
$post['xiaoq'] = '';
$post['kssj']=$_get['start']; //提交的開始查詢時間
$post['sjd']=$_get['class'];//提交的課程節次
$post['xn']='2014-2015';//所在學年
$post['xq']='2';//所在學期
$post['xqj']='6';//當天星期幾
$post['dpdatagrid1:txtpagesize']=90;//每頁顯示條數
$result = curl_request($url,$post,$cookie,0);
preg_match_all('/]+>[^>]+span>/',$result,$out);
$tip = iconv('gb2312', 'utf-8', $out[0][3]);//獲取頁面前部的提示內容
preg_match_all('/([\w\w]*?)/',$result,$out);
$table = iconv('gb2312', 'utf-8', $out[0][0]); //獲取查詢列表
$this->load->view("classroom",array('tip'=>$tip,'table'=>$table));
}
主要**由
alonemonkey提供。
效果可以。
php抓取網頁
用php抓取頁面的內容在實際的開發當中是非常有用的,如作乙個簡單的內容採集器,提取網頁中的部分內容等等,抓取到的內容在通過正規表示式做一下過濾就得到了你想要的內容,以下就是幾種常用的用php抓取網頁中的內容的方法。1.file get contents php url contents file g...
PHP 抓取函式
1 php抓取可以採集別人 的資料,前提不違法 2 用過curl,獲取介面的資料 3 php寫的介面,第三方介面 如 天氣介面 或者其他語言寫的。4 我們php想使用這些介面怎麼辦呢?那就需要curl方法,就算你獲取別人的介面 請求別人的網路 就需要用curl這個請求。curl是非常常用的,而且用處...
大學生課表製作 2 抓取課程表資料
beautifulsoup4 是乙個可以從html或xml檔案中提取資料的python庫.它能夠通過我們喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式.安裝 beautiful soup 如果你用的是新版的debain或ubuntu,那麼可以通過系統的軟體包管理來安裝 apt get inst...