十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了如何在thinkphp中使用实现一个跨域抓取数据功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联公司是一家专业提供淅川企业网站建设,专注与成都网站制作、成都网站设计、HTML5、小程序制作等业务。10年已为淅川众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。实现方式:jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示。
//远程抓取获取数据
$("#update_ac").click(function() {
$username = $("#username").text();
$("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){
$(this).html(" ");
});
$.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扩展的还有很多功能。自己去了解吧。
返回的数据是一个字符串,再用正则表达式去筛选需要的数据就了 下面是效果图
上述内容就是如何在thinkphp中使用实现一个跨域抓取数据功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。