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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
php 发送带附件邮件示例
Jan 23 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
php数组添加与删除单元的常用函数实例分析
Feb 16 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
使用php转义输出HTML到JavaScript
Mar 27 PHP
PHP正则验证Email的方法
Jun 15 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 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强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
常用jQuery代码分享
2015/07/14 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue项目实战总结篇
2018/02/11 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python日期相关操作实例小结
2019/06/24 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
创建市级文明单位实施方案
2014/03/01 职场文书
学校工作推荐信范文
2014/07/11 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
员工规章制度范本
2015/08/07 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis