顯然修改它是不可能的。是否有可能讀取其他網址的dom結構?
但是你會認爲只是閱讀它應該不成問題?
如果我有我的.js在別人的系統上運行,我想分析另一個URL的客戶端,有沒有辦法做到這一點?
一些簡單的像拉標題標籤或拉網址......也許加載網站到一個iframe來完成這個?
顯然修改它是不可能的。是否有可能讀取其他網址的dom結構?
但是你會認爲只是閱讀它應該不成問題?
如果我有我的.js在別人的系統上運行,我想分析另一個URL的客戶端,有沒有辦法做到這一點?
一些簡單的像拉標題標籤或拉網址......也許加載網站到一個iframe來完成這個?
如果我的權利得到您的問題,
使用YQL跨域例如,
var url = 'xyz.com'; // website you want to scrape
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&format=json&callback=?';
$.getJSON(yql,function(data){
if (data.results[0]){
console.log(data = data.results[0].replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')); // The scraped data (the whole webpage)
}
});
參考: How can i get Equivalent method of HttpwebRequest in javascript
什麼是yql?這看起來很酷..它有什麼作用? –
雅虎查詢語言...我被Google搜出了......你只是給我一個簡短的簡介? –
某種爲你解析的雅虎api? –
如果域不匹配,由於安全異常,您將無法執行此操作。如果您控制其他域,則應研究添加跨域文件以允許通過javascript訪問。
Gabe的答案呢? –
我沒有看到加貝的答案。 –
@SteveBinder:它已被刪除。 –
您可以通過AJAX GET請求獲取html源代碼。一則可以在HTML代碼中搜索或將其分配給一個iframe/...
如果URL來自其他域,則不適用。 –
哦,是的,你說得對,我沒有考慮政策 – Marduk
你可以用做xmlhttp
function getSourceAsDOM(url)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET",url,false);
xmlhttp.send();
parser=new DOMParser();
return parser.parseFromString(xmlhttp.responseText,"text/html");
}
如果您問是否可以檢查另一個來源的文檔的DOM,那麼不會。它將允許以表單形式竊取用戶數據,或者僅以文本形式提供。 –
相同的原產地政策阻止你這樣做。你可以看看http://stackoverflow.com/questions/3076414 – Mic
爲什麼你想從一個網絡客戶端,而不是像爬蟲/機器人這樣的服務器端程序做到這一點? – Tharabas