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_Flame(Version:Progress)的原代码
Oct 09 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
Oct 15 PHP
php图片的二进制转换实现方法
Dec 15 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
php精度计算的问题解析
Jun 21 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
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php简单获取复选框值的方法
2016/05/11 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
javascript简易画板开发
2020/04/12 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
python读文件逐行处理的示例代码分享
2013/12/27 Python
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
python实现三种随机请求头方式
2021/01/05 Python
python中if嵌套命令实例讲解
2021/02/25 Python
animation和transition的区别
2020/10/12 HTML / CSS
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
就业自我评价
2014/02/04 职场文书
企业精神口号
2014/06/11 职场文书
会计入职心得体会
2016/01/22 职场文书
javaScript Array api梳理
2021/03/31 Javascript
Python中glob库实现文件名的匹配
2021/06/18 Python