ホームページ  >  記事  >  バックエンド開発  >  jquery+thinkphp はクロスドメインデータクローリングメソッドを実装します

jquery+thinkphp はクロスドメインデータクローリングメソッドを実装します

高洛峰
高洛峰オリジナル
2017-01-11 11:09:401330ブラウズ

この記事の例では、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=&#39;loading2&#39;>   </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コードは4階で比較的明確です

json = eval("(" + $data + ")");
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

私を悩ませているのはjsonデータの受信です

import("@.ORG.simple_html_dom");
//thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面
$html = file_get_html(&#39;http://openoj.awaysoft.com/JudgeOnline/userinfo.php?user=&#39;.$username); //远程抓取了
$ret = $html->find(&#39;center&#39;,0)->plaintext; //返回数据了。

実際には、これはまだフロントデスクであり、クロスドメインクローリングはPHP 拡張機能 simple_html_dom (よくわからない場合は、オンラインで検索できます。PHP5 に基づいて開発されています)

リモート ページをローカルにキャプチャします。

rrreee

上記のコードは単なるコアコードであり、simple_html_domには多くの拡張機能があります。自分で調べてください。 jquery+thinkphp はクロスドメインデータクローリングメソッドを実装します

返されるデータは文字列であり、正規表現を使用して必要なデータをフィルタリングします。以下はレンダリングです

🎜 この記事が、ThinkPHP フレームワークに基づいた PHP プログラミングに役立つことを願っています。 🎜🎜クロスドメイン データ キャプチャを実現するための jquery+thinkphp メソッドの詳細と関連記事については、PHP 中国語 Web サイトに注目してください。 🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。