Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como buscar conteúdo de elementos em outro site

Bom dia,

Tenho um site que tem que se uma área de noticias de blogs, essas noticias estão em outro site, pesquisando vi que posso pegar conteúdo de elementos da pagina requisitada usando a função load() do jquery.

código:

$( document ).ready(function() {
    $(".title-noticias").load("https://blog.esocialtechne.com.br/mensageria-esocial/" + ".entry-title");
});

Quando minha pagina carrega recebo o erro:

Failed to load https://blog.esocialtechne.com.br/mensageria-esocial/.entry-title: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404.

Existe alguma forma melhor de fazer isso ? ou estou usando a função de forma errada?

Meu site não tem back-end, é apenas front.

muito obrigado.

3 respostas
solução!

Fala ai Gabriel, beleza? Já fiz isso com JavaScript puro, segue código de exemplo:

new DOMParser().parseFromString(response, "text/html").querySelector("table");

No seu caso, tenta fazer assim:

const page = new DOMParser().parseFromString(response, "text/html");
const find = $(page).find(SEU_SELETOR);

Espero ter ajudado.

Matheus obrigado pela atenção.

Mas eu estou tendo dificuldade para entender o codigo, segue meu teste:

$( document ).ready(function() {
const page = new DOMParser().parseFromString(response, "text/html");
    const find = $("https://blog.esocialtechne.com.br/mensageria-esocial/").find(".entry-title");
    console.log(find);
});

estou tendo o seguinte erro:

response is not defined

Na primeira linha eu estou instanciando uma variavel page do Tipo DOM?

E na segunda eu pego essa variavel e acesso o seletor da pagina que eu consultei?

Mas onde eu coloco o endereço da pagina que vou consultar? coloco no argumento?

const page = new DOMParser().parseFromString(response, "https://blog.esocialtechne.com.br/mensageria-esocial");

realmente nao conseguir entender, se puder me dar um esclarecimento, agradeço muito.

Fala Gabriel, vi que marcou a dúvida como solucionada, deu tudo certo? Não tive tempo de responder antes.