2013-01-13 52 views
0

我正在做的Greasemonkey腳本從YouTube結果提取視頻網址代碼: 我有這樣的:檢索頁面的源代碼在JavaScript

// ==UserScript== 
// @name  extract 
// @namespace here 
// @include  http://stackoverflow.com/ 
// @grant GM_xmlhttpRequest 
// @version  0.1 
// ==/UserScript== 

window.setTimeout(conseguir_articulos_youtube, 5000); 

function conseguir_articulos_youtube(){ 

    GM_xmlhttpRequest({ 
     method: "GET", 
     url: "http://www.youtube.com/results?search_sort=video_date_uploaded&uni=3&search_type=videos&search_query=humor", 
     onload: on_load_extract    
    }); 
} 

function on_load_extract(data){ 
    var datos=data.responseText; 
    alert(datos); 
} 

我使用XMLHttpRequest來檢索YouTube上的內容,但是響應中出現的頁面代碼並不完整。有一種形式可以在javascript中檢索頁面的完整源代碼?

+2

爲什麼不使用youtube API在JSON中獲得結果? – charlietfl

+0

使用API​​。如果你堅持這樣做很難,請參閱[如何在返回響應之前獲取AJAX get-request等待頁面呈現](http://stackoverflow.com/q/11486256/331508)。 –

回答

2

看來你正在接收頁面的整個源代碼。問題在於該頁面正在使用自己的AJAX調用來進一步加載其他資源,從而導致頁面的「不完整」版本。

我建議使用the YouTube API進行YouTube集成,而不是刮掉HTML。

我從來沒有用過它,所以我不能給你一個快速參考,但我確定它使用起來相當簡單。 :) 希望能幫助到你!