2015-06-27 1 views
2

Я использую YQL для получения базовой информации из div на atlatlsoftware.com. Мне нужно найти адрес, номер телефона и адрес электронной почты.Вытягивание данных с помощью YQL и jQuery

Мой текущий код выводит данные из YQL и регистрирует его в консоли как JSON.

var atlatlInfo = $.getJSON("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fatlatlsoftware.com%22%20and%0A%20%20%20%20%20%20xpath%3D'%2F%2F*%5B%40id%3D%22desktop-footer%22%5D%2Fdiv%5B3%5D%2Fdiv%2Ftable%2Ftbody%2Ftr%5B2%5D%2Ftd%5B1%5D'&format=json&diagnostics=true&callback="); 

console.log(atlatlInfo); 

Введя atlatlInfo.responseJSON.query.results.td.div в хромированной консоли, я могу получить доступ к данным мне нужно. Когда я пытаюсь сделать console.log (atlatlInfo.responseJSON.query.results.td.div), моя консоль хром выдает «undefined».

Как я могу получить данные, которые мне нужно использовать, с javascript?

ответ

0

$.getJSON возвращает асинхронный результат; где atlatlInfo не может быть определен при вызове console.log(atlatlInfo);; см. How do I return the response from an asynchronous call?. Попробуйте с использованием success обратного вызова из jQuery.getJSON(url [, data ][, success ]) обрабатывать data возвращенного вызовом $.getJSON

var atlatlInfo = $.getJSON("https://query.yahooapis.com/v1/public/yql?" 
 
          + "q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fatlatlsoftware.com%22%20and%0A%20%20%20%20%20%20xpath%3D" 
 
          + "'%2F%2F*%5B%40id%3D%22desktop-footer%22%5D%2Fdiv%5B3%5D%2Fdiv%2Ftable%2Ftbody%2Ftr%5B2%5D%2Ftd%5B1%5D'" 
 
          + "&format=json&diagnostics=true&callback=" 
 
          // process results from asynchronous call here 
 
          , function success(data) { 
 
           // do stuff with results 
 
           console.log(data.query.results.td.div); 
 
       });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script>