Foros del Web » Programando para Internet » Node.js »

El while me bloquea el proceso

Estas en el tema de El while me bloquea el proceso en el foro de Node.js en Foros del Web. Hola: Tengo un proceso para conseguir informacion de una web y meterlo en un fichero xml, web scraping e toda la vida. Pero al hacer ...
  #1 (permalink)  
Antiguo 01/12/2015, 16:15
 
Fecha de Ingreso: diciembre-2015
Mensajes: 15
Antigüedad: 8 años, 11 meses
Puntos: 0
El while me bloquea el proceso

Hola:

Tengo un proceso para conseguir informacion de una web y meterlo en un fichero xml, web scraping e toda la vida.

Pero al hacer el while, al des-comentarlo, me sale un error "fatal error call and retry last allocation failed "

Alguiens abe como podria podria arreglar el cdigo?

Gracias
  #2 (permalink)  
Antiguo 01/12/2015, 16:43
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: El while me bloquea el proceso

Sin ver el código no se puede ayudar mucho.
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 02/12/2015, 14:25
 
Fecha de Ingreso: diciembre-2015
Mensajes: 15
Antigüedad: 8 años, 11 meses
Puntos: 0
Busqueda Respuesta: El while me bloquea el proceso

Código:
var request = require('request'),
	cheerio = require('cheerio'),
	urls = [];
var fecha1,
	fecha2;
var builder = require('xmlbuilder');
var doc = builder.create('Loteriak');


var matrzenb  = new Array();
var matregun = new Array();

var i = 0;


fecha1 = "2015-01-01";
fecha2 = "2015-02-01";

var urtea1 = parseInt(fecha1.substr(0,4));
var hilea1 = parseInt(fecha1.substr(5,2));
var eguna1 = parseInt(fecha1.substr(8,2));

var urtea2 = parseInt(fecha2.substr(0,4));
var hilea2 = parseInt(fecha2.substr(5,2));
var eguna2 = parseInt(fecha2.substr(8,2));

fecha1 = new Date(urtea1, (hilea1 - 1) , eguna1);
fecha2 = new Date(urtea2, (hilea2 - 1), eguna2);


console.log(Date.parse(fecha1));
console.log(Date.parse(fecha2));

while( (Date.parse(fecha1)) < (Date.parse(fecha2)) ){

request({url: 'http://www.loteriasyapuestas.es/es/buscador?startDate=' + eguna1 + '/' + hilea1 + '/' + urtea1 + '&gameId=09&type=search&endDate=' + eguna2 + '/' + hilea2 + '/' + urtea2, encoding: 'binary'},function(err, resp, body){

	//console.log(hilea1);

	if(!err && resp.statusCode == 200){
		//console.log(body);
		var $ = cheerio.load(body);
		//console.log($);
      
		//console.log(body);
		$('.nacional .contenidoRegion').each(function(){
			//var numero = element.children.data;

			
			//console.log($(this).html());
			var loteriad = $(this).find('.cabeceraRegion .tituloRegion h3').html();
			var data = loteriad.split(" ");
			//console.log(loteriad);
			
			if(hilea1 < (hileConver(parseInt(data[8])))){

				hilea1 = hileConver(parseInt(data[8]));
			}


			eguna1 = parseInt(data[4]);

			//console.log(eguna1);

			var loteriaz = $(this).find('.cuerpoRegion .cuerpoRegionIzq p .numeroLoteria').html();
			var numero = loteriaz%10;


			matregun[i] = eguna1;
			matrzenb[i] = numero;

			i++;

			
			//console.log(doc.toString({ pretty: true }));
			
			//console.log(eguna1);
			//console.log(hilea1);
			//console.log(urtea1);
			//console.log("//////////");
    
			//console.log(numero);
		})
		//console.log(matregun.length);

		for (var x = (matregun.length); x>0 ; x--){
			//console.log(x);
			

			var egunaux = matregun[x - 1];
			var nume = matrzenb[x - 1];

			egunCheck2(egunaux);


			hileCheck(); 

			var urtxml =doc.ele('Urteak');
			urtxml.att('urtea',parseInt(urtea1));

			var hixml = urtxml.ele('Hileak');
			hixml.att('hilea',hilea1);

			var eguxml = hixml.ele('Egunak');
			eguxml.att('eguna', egunaux);
			eguxml.txt(nume);

			//console.log(egunaux);
			eguna1 = egunaux;


		}

		/*console.log(eguna1);
		console.log(hilea1);
		console.log(urtea1);
		console.log("//////////");
		
		console.log(eguna1);
		console.log(hilea1);
		console.log(urtea1);
		console.log("//////////");*/
		eguna1 = eguna1 + 1;
		egunCheck();
		hileCheck();
		//console.log(fecha1);
		fecha1 = new Date(urtea1, (hilea1 - 1), eguna1);

		//console.log(Date.parse(fecha1));
		//console.log(Date.parse(fecha2));

		/*console.log(fecha1);
		console.log(fecha2);
		console.log(eguna1);
		console.log(hilea1);
		console.log(urtea1);
		console.log("//////////");*/

		//console.log(x);
			
		//console.log(matregun[0]);
		//console.log(matrzenb[0]);
		/*egun1 = eguna1 + 1;
		console.log(egun1);*/
		//console.log(doc.toString({ pretty: true }));

		/*if((Date.parse(fecha1)) < (Date.parse(fecha2)) )

			console.log("berrun");
		}*/
		console.log("Urten da");
	}
	

	//egunCheck(eguna1);
	//console.log(doc.toString({ pretty: true }));
	

})
}
//console.log(doc.toString({ pretty: true }));

console.log("Urten da");
	
function hileConver(hi){

	var re;

		switch(hi){

			case "enero":
				re = 1;
				break;
			case "febrero":
				re = 2;
				break;
			case "marzo":
				re = 3;
				break;
			case "abril":
				re = 4;
				break;
			case "mayo":
				re = 5;
				break;
			case "junio":
				re = 6;
				break;
			case "julio":
				re = 7;
				break;
			case "agosto":
				re = 8;
				break;
			case "septiembre":
				re = 9;
				break;
			case "octubre":
				re = 10;
				break;
			case "noviembre":
				re = 11;
				break;
			case "diciembre":
				re = 12;
				break;
			
		}
	return re;

}

function egunCheck(){

	switch(hilea1){


		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			if(eguna1 > 31){
				console.log("sartu");

				hilea1 = hilea1 + 1;
				eguna1 = 1;
				console.log("***");
				console.log(eguna1);
				console.log(hilea1);
				console.log("***");
			}
		case 2:
			if(eguna1 > 28){

				hilea1 = hilea1 + 1;
				eguna1 = 1;
			}
		case 4:
		case 6:
		case 9:
		case 11:
			if(eguna1 > 30){

				hilea1 = hilea1 + 1;
				eguna1 = 1;
			}


	}
}

function egunCheck2(egu){

	if(eguna1>egu){

		hilea1 = hilea1 + 1;
	}
}
function hileCheck(){
	
	if(hilea1>13){
		
		urtea1 = urtea1 + 1;
		hilea1 = 1;
	}
}

Etiquetas: proceso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.