QueryList查找js变量

2020-12-03 16:22:35

下面的方法不错,但是我不知道我哪里出现了问题,没能成功。

所以还是php正则匹配js变量,还是暴力的使用切割字符串的方式,切割两次就出来了。

参考地址  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);

采集结果



  • 2019-09-26 21:48:15

    解决UEditor超出最大字数后只提示不限制的问题

    最近项目用到百度额UEditor文本编辑器,今天测试向我提出了一个问题。就是在输入的文字超过默认的最大字数限制之后,虽然提示“字数超过最大范围,服务器可能拒绝保存”,但是仍然可以点击保存按钮进行保存。

  • 2019-09-27 14:49:33

    Google Guava介绍和体检

    JDK提供的String还不够好么?也许还不够友好,至少让我们用起来还不够爽,还得操心!举个栗子,比如String提供的split方法,我们得关心空字符串吧,还得考虑返回的结果中存在null元素吧,只提供了前后trim的方法(如果我想对中间元素进行trim呢)。

  • 2019-09-28 00:03:21

    shiro的session共享,持久化

     shiro的session创建与session的查询、更新、过期、删除中,shiro对session的操作基本都讲到了,但还缺一个session共享没有讲解;session共享的原理其实在自定义session管理一文已经讲过了,本文不讲原理,只看看shiro的session共享的实现。

  • 2019-09-28 08:00:30

    Java.io.tmpdir介绍

    System.getproperty(“java.io.tmpdir”)是获取操作系统缓存的临时目录,不同操作系统的缓存临时目录不一样,