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 相关文章推荐
APMServ使用说明
Oct 23 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
PHP实现时间轴函数代码
Oct 08 PHP
PHP开发微信支付的代码分享
May 25 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
ThinkPHP项目分组配置方法分析
Mar 23 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
php面向对象重点知识分享
Sep 27 PHP
浅谈PHP中的那些魔术常量
Dec 02 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+mysql)
2007/11/23 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
详解Python self 参数
2019/08/30 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
思想品德自我鉴定
2013/10/12 职场文书
新手上路标语
2014/06/20 职场文书
团队拓展活动方案
2014/08/28 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
督导岗位职责范本
2015/04/10 职场文书
小学教学工作总结2015
2015/05/13 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
MySQL日期时间函数知识汇总
2022/03/17 MySQL