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);

采集结果



  • 2020-02-22 17:54:59

    最新FullCalendar中文文档

    Fullcalendar是一款用来管理日程安排、工作计划的日历工具,它功能非常强大而且非常实用。而目前网络上没有很好的中文文档,为了更好的和大家分享Fullcalendar的相关使用,即日起计划将Fullcalendar的英文文档翻译成中文版。

  • 2020-02-22 17:57:05

    nuxtjs支持api接口,serverMiddleware

    Who can’t relate to this: You’ve built a small portfolio page for someone, maybe a company, a friend or yourself. And the only API endpoint you’d need is one for a form. What now? Scaffolding a new service just for this one endpoint?

  • 2020-02-22 17:59:34

    FullCalendar插件的基本使用带详细配置翻译

    前段时间,一直在开发考勤系统,当时为满足设计的需求,选了好几个插件,最后决定采用Fullcanlendar的插件。感觉这个插件可以满足现阶段的功能开发需求

  • 2020-02-22 18:03:10

    Vue组件中使用Sass或者Less全局变量

    本文以Sass做案例,Less的参考,基本配置大同小异。 假如我们有一个Sass的全局变量common.scss文件,路径 ../style/common.scss 代码如下:

  • 2020-02-23 23:27:26

    Nuxt.js 基础入门教程

    Nuxt.js 就是一个极简的 vue 版的 ssr 框架。基于它,我们可以快速开发一个基于 vue 的 ssr 单页面应用。

  • 2020-02-24 18:36:17

    百度地图做电子围栏总结

    需求:在地图上画出围栏,设置围栏信息后保存,生成围栏列表。全选时,地图视野可看到全部的围栏区域,单独勾选会调整地图视野到当前勾选的围栏。围栏区域的中心点要显示围栏名称。

  • 2020-02-24 18:37:17

    百度地图绘制轨迹点

    没有后台获取事实信息 都是伪数据- -轨迹信息做不到事实导航。 控件可以根据自己的需求添加 位置通过offset:new BMAP.Size(x,y)进行微调 事实路况信息需要通过引没有后台获取事实信息 都是伪数据- -轨迹信息做不到事实导航。 控件可以根据自己的需求添加 位置通过offset:new BMAP.Size(x,y)进行微调 3D视图部分城市没有开放开放 根据需求自己添加