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执行linux系统命令的常用函数使用说明
Apr 27 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
php define的第二个参数使用方法
Nov 04 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
一个颜色轮换的简单例子
2006/10/09 PHP
SSI指令
2006/11/25 PHP
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
JS实现多选框的操作
2020/06/24 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python实现查询IP地址所在地
2015/03/29 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
Python学习入门之区块链详解
2017/07/25 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
linux面试题参考答案(2)
2015/12/06 面试题
四种会话跟踪技术
2015/05/20 面试题
高三毕业生自我鉴定
2013/12/20 职场文书
销售会计岗位职责
2014/03/15 职场文书
担保书范文
2019/07/09 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL