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中防止伪造跨站请求的小招式
Sep 02 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
php图片添加水印例子
Jul 20 PHP
PHP中session跨子域的三种实现方法
Jul 25 PHP
php类的自动加载操作实例详解
Sep 28 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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
漂亮但不安全的CTB
2006/10/09 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
一个JS翻页效果
2007/07/23 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
Webpack实战加载SVG的方法
2017/12/26 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
vue实现评论列表功能
2019/10/25 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
python爬取各类文档方法归类汇总
2018/03/22 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
python对XML文件的操作实现代码
2020/03/27 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
商场端午节活动方案
2014/01/29 职场文书
高三家长寄语
2014/04/03 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
详解Python牛顿插值法
2021/05/11 Python