27/11/17

Scrapping con C#. Listas de Contratación Temporal de la Xunta.

url es la variable con la url a scrapear //valga el palabro

"//td[@align='left']" es una expresión xpath que devolvería los TD con alineación izquierda

Para hacer el scrapping con cSharp usamos ScrapySharp

Hay ejemplo completo en GitHub aquí

Código:

ScrapingBrowser Browser = new ScrapingBrowser();
Browser.UserAgent = new FakeUserAgent("primero", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
Browser.AllowAutoRedirect = true; // Browser has settings you can access in setup
Browser.AllowMetaRedirect = true;
WebPage PageResult = await Browser.NavigateToPageAsync(new Uri(url));
IEnumerable TDs = PageResult.Html.SelectNodes("//td[@align='left']");
this.lNombre.Clear();
foreach (HtmlNode item in TDs) {
    this.lContenidosTDs.Add(item.InnerText);
}

22/11/17

Comprobación de Consulta das Listas de Vinculación Temporal Decreto 37/2006. Javascrip

Está también en Github

const fileName = "./personas.json";
const Horseman = require("node-horseman");
const cheerio = require('cheerio')
const fs = require('fs');

var horseman = new Horseman();

var Personas = [];
var PersonasAnteriores;
var grabarFichero = false;

function GestionDeParametros(params){
if(params.length == 3){// así es que se envía un parámetro
grabarFichero = true;
}
}
function getPersonas(body) {
var $ = cheerio.load(body);
//$(".taboadatos TD");
var columna = 0;
$('.taboadatos TD').each(function () {
columna++;
if (columna === 1) {
Personas.push($(this).text());
}
if (columna === 4) {
columna = 0;
}

});
if(grabarFichero){
fs.writeFileSync(fileName,JSON.stringify(Personas),'utf-8');
}
var i = 0;
console.log("LISTA DE CAMBIOS DE LAS LISTAS DEL B SEGÚN FICHERO: " + fileName);
console.log("===================================================");
Personas.forEach(element => {
if (element === PersonasAnteriores[i]) {
console.log("" + (i + 1) + ": (IGUALES) " + element);
} else {
console.log("" + (i + 1) + ": (DIFERENTES) " + element + '///' + PersonasAnteriores[i]);
}
i++;
});
}

function ShowPersonas(per) {
console.log(per);
}

function CargarPersonasAnteriores() {
try {
PersonasAnteriores = JSON.parse(fs.readFileSync(fileName, 'utf-8'));
} catch (err) {
console.error(err);
console.error("No existe el fichero generelo con: ***");
}
}

GestionDeParametros(process.argv);
CargarPersonasAnteriores();

horseman
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0")
.open('http://www.xunta.es/rcp/listas/rcp_li05/li05_lista_ambito_sel.jsp?rcpCOD_LISTA=76&rcpCOD_AMBITO=U0000&rcpDES_AMBITO=AMBITO%20AUTON%D3MICO&lang=gl')
.waitForSelector("TD")
.html()
.then(function (body) {
getPersonas(body)
horseman.close();
})
;

20/11/17

Test. Clase de ayuda para envío de pulsaciones de teclas.

SSk: Static Send Keys.

Es un envoltorio para facilitar el uso de la función "SendKeys.SendWait(string keys)" y algunas utilidades más como introducir un tiempo de espera entre pulsación y pulsación. También permite generar apropósito tiempo de espera (Tread.Sleep(miliseconds)) y facilita el envío de algunas teclas especiales.

Se encuentra en github como parte del proyecto Utils pero es, de momento, muy independiente y no necesita nada del resto del proyecto.

https://github.com/IvanCruzFraguela/UtilNs/blob/master/Test/SSk.cs