2015-02-02 3 views
0

Я разрабатываю Javascript API, и мне нужно, чтобы очистить содержимое определенных удаленных HTML-страниц. Например, мне нужно сообщить ему, чтобы получить InnerHTML элемента с идентификатором «приветствие» и отправить его мне как строку. Можно ли это сделать только с JS? Если нет, мне нужно использовать Node.js или PHP?Скопировать специальный удаленный HTML с помощью Javascript?

ответ

0

YQL может быть только то, что вам нужно!

См https://developer.yahoo.com/yql/

Это позволяет захватывать не локальные данные через интерфейс JSONP. Это означает, что вы сможете очистить удаленный HTML только с помощью javascript на стороне клиента.

Here is an example я взял с сайта Yahoo,

<b>Stories: </b> <input type='text' size='15' id='story' value='world'/><br/><br/> 
<button id='get_stories'>Get Stories</button> 
<div id='results'></div> 
<script src="https://yui-s.yahooapis.com/3.8.0/build/yui/yui-min.js"></script> 
<script> 
// Calls YQL Web service, parses results, and outputs results 
YUI().use('node', 'event', 'yql', function(Y) { 
    Y.one("#get_stories").on('click',function() { 
    var stories = "<div><ul>"; 
    var story = Y.one('#story').get('value') || 'world'; 
    var news_url = "http://news.yahoo.com/"; 
    var yql_query = "select * from html where url='" + news_url + story + "'"; 
    yql_query += " and xpath='//div[@class=\"content\"]//div[@class=\"txt\"]/p'"; 
    Y.YQL(yql_query, function(response) { 
     if(response.query.results){ 
     var no_stories = response.query.results.p.length; 
     var paras = response.query.results.p; 
     paras.forEach(function(node,index) { 
      if (node.hasOwnProperty('a') && node.hasOwnProperty('content')) { 
      stories += "<li><a href='" + news_url + node.a.href + "' title='" + node.a.title + "'>" + node.content + "</a></li>"; 
      } 
     }); 
     } else{ 
     stories += "Sorry, could not find any headlines for the category " + story + ". Please try another one."; 
     } 
     stories += "</ul></div>"; 
     Y.one('#results').append(stories); 
     stories = ""; 
    }); 
    }); 
});  
</script> 
+0

Я новичок в JS. Есть ли способ упростить это: «Посмотрите на эту страницу: найдите этот элемент: получите контент, var content = theContent;»? –

0

Вы пытались использовать библиотеку селена, чтобы помочь вам получить необходимую информацию?

Используется в основном для выполнения проверок автоматизации пользовательского интерфейса; если вы используете только локально он может помочь вам получить информацию вам нужно:

https://code.google.com/p/selenium/wiki/WebDriverJs

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