YQL para pegar valor de uma div de site externo

0 respostas
A

Olá,

Estou utilizando o YQL para obter o valor de uma div de uma página externa.
Explicarei o motivo:

Nesta div, contém o valor de um produto que preciso comparar com
o valor que possuo (em uma variável).

Com o código que tenho, consegui pegar todo o código da página, fiz um
innerHTML para criar o conteúdo em uma div, e depois de ter criado este
conteúdo, consigo pegar o ID da div e com um substr e um setTimeout
pegar o valor exato da div (ex; R$ 30,00).

Porém, preciso fazer isto para vários produtos, pois tenho que comparar
todos para atualizar os meus valores sem ter que verificar manualmente.

Tentei fazer um array de urls e um for para criar os conteúdos um abaixo do outro
para pegar os valores e comparar, mas não consigo imprimir todos, somente
imprime o ultimo.

Alguém poderia me ajudar com este for?

Ou alguma outra maneira mais fácil de conseguir esta informação para
comparar com os meus valores?

segue o código:

<script type="text/javascript">
var your_url = ["http://www.miniinthebox.com/pt/case-de-pele-com-teclado-bluetooth-e-suporte-para-o-novo-ipad-branco-_p320683.html","http://www.miniinthebox.com/pt/case-em-silicone-fina-para-novo-ipad-varias-cores-_p335146.html?pos=ultimately_buy_9"];

</script>

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script>
<script type="text/javascript">


jQuery.ajax = (function(_ajax){
    var protocol = location.protocol,
        hostname = location.hostname,
        exRegex = RegExp(protocol + '//' + hostname),
        YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
        query = 'select * from html where url="{URL}" and xpath="*"';
    function isExternal(url) {
        return !exRegex.test(url) && /:\/\//.test(url);
    }
    return function(o) {
        var url = o.url;
        if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
            o.url = YQL;
            o.dataType = 'json';
            o.data = {
                q: query.replace(
                    '{URL}',
                    url + (o.data ?
                        (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
                    : '')
                ),
                format: 'xml'
            };
            if (!o.success && o.complete) {
                o.success = o.complete;
                delete o.complete;
            }
            o.success = (function(_success){
                return function(data) {
                    if (_success) {
                        _success.call(this, {
                            responseText: data.results[0]
                                .replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
                        }, 'success');
                    }
                };
            })(o.success);
        }
        return _ajax.apply(this, arguments);
    };
})(jQuery.ajax);

var your_url = ["http://www.miniinthebox.com/pt/case-de-pele-com-teclado-bluetooth-e-suporte-para-o-novo-ipad-branco-_p320683.html","http://www.miniinthebox.com/pt/case-em-silicone-fina-para-novo-ipad-varias-cores-_p335146.html?pos=ultimately_buy_9"];
var b = your_url.length;
for (var i = 0; i<b; i++) {  
$.ajax({
    url: your_url[i],
    type: 'GET',
    success: function(is) {
        var text = is.responseText;
       var p = document.write('<div id="'+i+'"style="width:992px;height:550px;">' + text + '<br />'+'</div>');
    }
});

alert(i);
}


</script>
<script>
function msg() {
var b = document.getElementById('salePrice_320683').innerHTML;
alert(b.substr(0,5));
}
setTimeout("msg()",6000);
</script>
<body>
</body>
Criado 15 de abril de 2014
Respostas 0
Participantes 1