如何對(duì)ajax型的網(wǎng)頁數(shù)據(jù)進(jìn)行抓取。比如http://www.這個(gè)站點(diǎn),“更多新問題”就是發(fā)送的ajax請(qǐng)求。 其實(shí)抓ajax的頁面和抓普通的頁面區(qū)別不大。ajax只不過是做了一次異步的http請(qǐng)求,只要使用firebug類似的工具,找到請(qǐng)求的后端服務(wù)url和傳值的參數(shù),然后對(duì)該url傳遞參數(shù)進(jìn)行抓取即可。利用firebug的網(wǎng)絡(luò)工具,如圖所示: ![]() 下面代碼就是以車問網(wǎng)站為例,通過curl發(fā)送POST請(qǐng)求,獲取一頁的數(shù)據(jù)。(其實(shí)該url的數(shù)據(jù)可以直接通過GET獲?。?nbsp; <?php $opt = "http://www./proc/ajax/getHomeNewQuestion_ajax.jsp"; $post = "lastqid=50934&pgno=1&pagenum=20"; $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_URL, $opt); $rs = curl_exec($curl); $rs = json_decode($rs); var_dump($rs); ?> 每次只需要更改參數(shù)pgno就相當(dāng)于更改了分頁的頁碼,然后再經(jīng)行處理就與抓普通的列表頁無異了。 |
|