QueryList采集javascript中的内容/采集json字符串/采集AJAX加载的内容

回复 星标
更多
QueryList采集javascript中的内容/采集json字符串/采集AJAX加载的内容
.
.
.
.
.
.
例一»

采集网址:http://ql.44i.cc/explore

采集目标:如图

代码

require 'QL/QueryList.class.php';

$url = "http://ql.44i.cc/explore/";

//定义个处理方法用于QL回调

function fun($content,$key){

//在这里可以对采集回来的结果做一些额外的处理

//用正则匹配出我们想要的内容

if(preg_match('/G_SITE_NAME = \'(.+)\'/', $content,$arr)){

return $arr[1];

}

return $content;

}

$reg = array("xx"=>array("script:eq(0)","html","","fun"));

$data = QueryList::Query($url,$reg)->jsonArr;

print_r($data);

采集结果

例二»

采集网址:http://pad.zol.com.cn/slide/470/4707265_1.html

采集目标:采集ZOL网站数码图集,是一个json字符串,我们需要把它从js里面采集出来并解析成PHP对象,如图.

代码

require 'QL/QueryList.class.php';

$url = "http://pad.zol.com.cn/slide/470/4707265_1.html";

//定义个处理方法用于QL回调

function fun($content,$key){

//在这里可以对采集回来的结果做一些额外的处理

//匹配除json字符串

if(preg_match('/({.+});/', $content,$arr)){

$jsonStr =  $arr[1];

//解码json字符串

$json = json_decode($jsonStr);

return $json;

}

return $content;

}

$reg = array("xx"=>array("script:eq(4)","html","","fun"));

$data = QueryList::Query($url,$reg)->jsonArr;

print_r($data);

采集结果

例三»

采集AJAX动态加载的内容,这种是最简单的了,完全不需要用到QueryList。

采集网址:http://m.mtime.cn/#!/theater/584/3868/date/

采集目标:采集Mtime时光网影视信息,查看源代码会发现源码里并没有我们想要采集的内容,很明显这种内容是通过AJAX动态加载的,在浏览器中按F12调出开发者工具,很容易就可以抓到AJAX地址,如图

地址为http://m.mtime.cn/Service/callback.mi?Ajax_CallBack=true&Ajax_CallBackType=Mtime.Mobile.Pages.CallbackService&Ajax_CallBackMethod=RemoteCallbackSameDomain&Ajax_RequestUrl=http%3A%2F%2Fm.mtime.cn%2F%23!%2Ftheater%2F584%2F3868%2Fdate%2F&t=201492815183877392&Ajax_CallBackArgument0=%2FShowtime%2FMovieTimesByCinema.api%3FcinemaId%3D3868%26date%3D20140928&Ajax_CallBackArgument1=

代码

$url = "http://m.mtime.cn/Service/callback.mi?Ajax_CallBack=true&Ajax_CallBackType=Mtime.Mobile.Pages.CallbackService&Ajax_CallBackMethod=RemoteCallbackSameDomain&Ajax_RequestUrl=http%3A%2F%2Fm.mtime.cn%2F%23!%2Ftheater%2F584%2F3868%2Fdate%2F&t=201492815183877392&Ajax_CallBackArgument0=%2FShowtime%2FMovieTimesByCinema.api%3FcinemaId%3D3868%26date%3D20140928&Ajax_CallBackArgument1=";

$jsonStr = file_get_contents($url);

$json = json_decode($jsonStr);

print_r($json);

采集结果


相关链接:

phpQuery,如jQuery一样轻松处理轻松处理DOM文档内容

QueryList一个基于phpQuery的采集工具

QueryList选择器参考手册

2015-06-22 20:35:17更新过
新窗口打开 关闭