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新手上路(三)
Oct 09 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
php使用Cookie控制访问授权的方法
Jan 21 PHP
php实现递归的三种基本方式
Jul 04 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
php通过各种函数判断0和空
Jul 04 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
PHP Memcached应用实现代码
2010/02/08 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
javascript 变量作用域 代码分析
2009/06/26 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
轮播的简单实现方法
2016/07/28 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
Mac下安装vue
2018/04/11 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
干部培训自我鉴定
2014/01/22 职场文书
法学院方阵解说词
2014/01/29 职场文书
党风廉政承诺书
2014/03/27 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电