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采集时被封ip的解决方法
Aug 29 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
php输出xml必须header的解决方法
Oct 17 PHP
smarty中post用法实例
Nov 28 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
laravel Model 执行事务的实现
Oct 10 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
php 判断数组是几维数组
2013/03/20 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
简单实现php上传文件功能
2017/09/21 PHP
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
js 幻灯片的实现
2011/12/06 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
用于业余项目的8个优秀Python库
2018/09/21 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python如何进行矩阵运算
2020/06/05 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
餐厅总厨求职信
2014/03/04 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android