2013/09/13

使用 xdomainajax 套件去擷取網頁資訊

最近需要去擷取到別人網頁的內容,並且分析裡面資料
在這邊以『Yahoo!』作為範例,單純擷取不分析

在分析別人網頁時常會遇到『Cross Domain』的問題,用Chrmoe開發者還會遇到『Access-Control-Allow-Origin』的問題

在此已經知道一些解決方式,不過這邊是參考『洪朝貴』老師的部落格『"資訊人權貴" 之家』所寫得『Cross Domain AJAX 抓網頁撈過界 以及如何整合兩個部落格的標籤

提到有一個套件是由James Padolsey本人寫所的『xdomainajax』套件,我那時在找套件的時候發現老師貼的網址都已經失連了

由老師的連結才知道開發者已經將Github名稱從『jamespadolsey』改為『padolsey』,算是一段蠻有趣的事情

對他有興趣的人可以直接到他網站『JAMES PADOLSEY』觀看,他不只xdomainajax一個作品而已,蠻厲害的開發者

有稍微看一下xdomainajax內容,對方用YQL實現跨站擷取的功能

YQL是什麼?YQL是由Yahoo!提供的Yahoo! Query Language,可以用SQL的方式去查詢,也能跨越去查詢其他網頁




透過GET方式去取得到回饋的資料,透過data.responseText將取得資料設定到DIV TAG內

<!DOCTYPE HTML>
<html lang="zh-tw">
 <head>
  <meta charset="utf8">
  <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  <script type="text/javascript" src="jquery.xdomainajax.js"></script>
  <script type="text/javascript">
   $(function () {
    $.get("http://yahoo.com.tw", function(data){
     document.getElementsByTagName("div")[0].innerHTML=data.responseText.toString();
    });
   });
  </script>
 </head>
 <body>
  <div>
   程式碼顯示區塊
  </div>
 </body>
</html>






參考資料:
http://user.frdm.info/ckhung/b/js/xdomain.php
http://james.padolsey.com/
https://github.com/padolsey
https://raw.github.com/padolsey/jQuery-Plugins/master/cross-domain-ajax/jquery.xdomainajax.js
http://www.w3schools.com/jsref/dom_obj_document.asp
http://developer.yahoo.com/yql/