jquery+thinkphp实现跨域抓取数据的方法


Posted in PHP onOctober 15, 2016

本文实例讲述了jquery+thinkphp实现跨域抓取数据的方法。分享给大家供大家参考,具体如下:

今天做一个远程抓取数据的功能,记得jquery可以用Ajax远程抓取,但不能跨域。再网上找了很多。但我觉得还是来个综合的,所以我现在觉得有点把简单问题复杂化了,但至少目前解决了:

跨域抓取数据到本地数据库再异步更新的效果

我实现的方式:jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示。

//远程抓取获取数据
 $("#update_ac").click(function() {
      $username = $("#username").text();
      $("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){
        $(this).html("<span class='loading2'>   </span>");
      });
      $.post("update_ac/username/"+$username,{},function($data){
        json = eval("(" + $data + ")");
        $("#Submit").html(json.data.Submit);
        $("#AC").html(json.data.AC);
        $("#solved,#solved2,#solved3").html(json.data.solved);
        $("#rank").html(json.data.rank);
       }
      ),"json";
});

上面的jquery代码还算四楼比较清楚的,纠结我的就是那个json数据的接收

json = eval("(" + $data + ")");
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

其实这个都还是前台,跨域抓取是用php的扩展simple_html_dom完成的(不清楚的可以到网上去搜一搜,基于PHP5开发的)

把远程的页面抓取到本地。

import("@.ORG.simple_html_dom");
//thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面
$html = file_get_html('http://openoj.awaysoft.com/JudgeOnline/userinfo.php?user='.$username); //远程抓取了
$ret = $html->find('center',0)->plaintext; //返回数据了。

上面的代码只是核心代码,simple_html_dom扩展的还有很多功能。自己去了解吧。

返回的数据是一个字符串,再用正则表达式去筛选需要的数据就了 下面是效果图

jquery+thinkphp实现跨域抓取数据的方法

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中的日期处理方法集锦
Jan 02 PHP
joomla内置的表单验证功能使用方法
Jun 11 PHP
深入php之规范编程命名小结
May 15 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 18 PHP
php组合排序简单实现方法
Oct 15 #PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 #PHP
php实现博客,论坛图片防盗链的方法
Oct 15 #PHP
PHP云打印类完整示例
Oct 15 #PHP
PHP实现统计在线人数功能示例
Oct 15 #PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 #PHP
PHP实现导出excel数据的类库用法示例
Oct 15 #PHP
You might like
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
Jquery动态列功能完整实例
2019/08/30 jQuery
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
学习python处理python编码问题
2011/03/13 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
Python使用进程Process模块管理资源
2020/03/05 Python
python识别验证码的思路及解决方案
2020/09/13 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
《曹刿论战》教学反思
2014/03/02 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
学校清明节活动总结
2014/07/04 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
Elasticsearch 基本查询和组合查询
2022/04/19 Python