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下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
php存储过程调用实例代码
Feb 03 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
CI框架附属类用法分析
Dec 26 PHP
浅谈php常用的7大框架的优缺点
Jul 20 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&amp;&amp;mysql)二
2006/10/09 PHP
什么是MVC,好东西啊
2007/05/03 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
浅析PHP绘图技术
2013/07/03 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
浅谈Node.js之异步流控制
2017/10/25 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
解析Python中的二进制位运算符
2015/05/13 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
零基础学python应该从哪里入手
2020/08/11 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
企业内控岗位的职责
2014/02/07 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
消防安全宣传标语
2014/06/07 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
2015年妇女工作总结
2015/05/14 职场文书