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 相关文章推荐
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
php数组查找函数总结
Nov 18 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
PHP整合PayPal支付
Jun 11 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
详解PHP归并排序的实现
Oct 18 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
php 函数中静态变量使用的问题实例分析
Mar 05 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
一些PHP写的小东西
2006/12/06 PHP
简单的PHP缓存设计实现代码
2011/09/30 PHP
php简单分页类实现方法
2015/02/26 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python星号*与**用法分析
2018/02/02 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
jupyter notebook 多行输出实例
2020/04/09 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
智能电子应届生求职信
2013/11/10 职场文书
晚宴邀请函范文
2014/01/15 职场文书
师德建设实施方案
2014/03/21 职场文书
化工操作工岗位职责
2014/04/29 职场文书
导游词之广西漓江
2019/11/02 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python