2015-06-26 8 views
-3

Я пишу просто одностраничное веб-приложение. Приложение должно загрузить полный текст html страницы другого сайта в строку. У меня есть URL другого сайта. Как я могу вывести полный текст этой внешней страницы в строку в javascript?Простая JS Полная страница Скребок страницы

ответ

1

Собственно, это можно сделать из javascript. Если на другом сайте включен CORS, вы можете использовать ajax для получения удаленного содержимого URL-адреса.

Если он не разрешен CORS, вы можете использовать свой собственный сервер для получения удаленного содержимого URL-адреса. Таким образом, вы можете отправить запрос ajax на свой сервер, ваш сервер получит удаленное содержимое и даст его в ответ на ваш ajax.

Кроме того, вы можете использовать JSONP со своим сервером или, если у вас нет своего сервера, вы можете найти онлайн-сервис, который предоставляет вам такую ​​функциональность.

Здесь я создал пример извлечения удаленного URL с помощью бесплатного онлайн-сервиса и JSONP: http://jsfiddle.net/pisamce/2t1gz24x/

var res = document.getElementById('res'), 
 
    url = document.getElementById('url') 
 
    myVar = ''; 
 
window.show = function (jsonp) { 
 
    myVar = jsonp[0].body; //assign response to your variable 
 
    res.innerText = myVar; 
 
} 
 
document.getElementById('btn').addEventListener('click', function() { 
 
    var s = document.createElement('script'); 
 
    s.src = 'http://jsonpwrapper.com/?urls%5B%5D=' + encodeURIComponent(url.value) + '&callback=show'; 
 
    document.getElementsByTagName('head')[0].appendChild(s); 
 
});
<input id="url" type="text" value="http://example.com" /> 
 
<input id="btn" type="button" value="Get page html" /> 
 
<pre id="res"></pre>

0

Нет, вы не можете сделать это в javascript. Из-за CORS браузер не позволяет выполнять вызовы таких вызовов.

Вы можете сделать это на стороне сервера. Удалите данные извлечения сервера и ответьте на ваш сайт.

+0

Я включил объяснение. Помогает ли это? –

Смежные вопросы