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
基于mysql的bbs设计(四)
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
php中几种常见安全设置详解
Apr 06 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 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
桌面中心(四)数据显示
2006/10/09 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
浅谈php自定义错误日志
2015/02/13 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php简单压缩css样式示例
2016/09/22 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
shiro授权的实现原理
2017/09/21 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
运动会通讯稿150字
2014/02/15 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
抗震救灾标语
2014/06/26 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL