Estou desenvolvendo um Web Crawler especialmente com Node.js, onde pega vários itens de outros sites simultaneamente, e mostra na tela do navegador (graças ao módulo browserify, onde converte os códigos com outros módulos necessários, o Cheerio e o Request).
No JS:
var unique = require(‘uniq’);
var request = require(‘request’);
var cheerio = require(‘cheerio’);document.getElementById(“search”).addEventListener(“click”, main); //Evento no botão para iniciar a busca
function main() {
function limpar() {
document.getElementById(“result”).innerHTML = “”;
}limpar(); //LimpaTela var busca = document.getElementById("inputProduto").value; function myTrim(trim) { return trim.replace(/^\s+|\s+$/gm, ''); } urlchip = "https://www.chipart.com.br/produtos/" + busca; spider(); function spider(){ request(urlchip, function (err, res, body) { if (err) console.log('Erro:' + err); var $ = cheerio.load(body); function crawler() { const produto = []; const titulo = []; const preco = []; const imagem = []; const i = 0;
//Pesquisa por itens
$(' .products__list__item li').each(function (i, elem) { $(' .product-item-link a').each(function (i, elem) { titulo[i] = myTrim($(this).text().toUpperCase); }); $(' .price').each(function (i, elem) { preco[i] = myTrim($(this).text()); }); $(' .product-card__figure img').each(function (i, elem) { imagem[i] = myTrim($(this).attr('src')); }); titulo.join(', '); preco.join(', '); imagem.join(', '); produto.join(', '); produto[i] = [titulo[i], preco[i], imagem[i]];
//Contrutor HTML
var html = //Aqui entra as divs para construir os blocos com as pesquisasdocument.getElementById("result").innerHTML += html; }); console.log(produto); }; crawler(); });
}
O problema é que em alguns sites estou sendo barrado por causa do CORS(por questão de segurança e tals). Aparece esse erro:
Access to fetch at “https:// www.chipart.com.br/produtos/processador” from origin ‘http: // localhost:8080’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.
Tem como desabilitar o CORS e fazer as pesquisas nesses sites?
OBS: O site da KaBum! deixou puxar as informações.