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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
php递归创建目录的方法
Feb 02 PHP
php实现遍历多维数组的方法
Nov 25 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 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
劣质的PHP代码简化
2010/02/08 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Python图像读写方法对比
2020/11/16 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
市场营销管理制度
2014/01/29 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
小学生操行评语
2014/04/22 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
员工工作自我评价
2014/09/26 职场文书
教代会闭幕词
2015/01/28 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书