Quindi desidero utilizzare la richiesta-promessa per estrarre il corpo di una pagina. Una volta che ho la pagina voglio raccogliere tutti i tag e ottenere una matrice di src di quelle immagini. Supponiamo che gli attributi src su una pagina abbiano percorsi relativi e assoluti. Voglio una matrice di percorsi assoluti per imgs su una pagina. So che posso usare alcune string manipulation e il percorso npm per costruire il percorso assoluto ma volevo trovare un modo migliore di farlo.Come ottengo il percorso assoluto per "<img src=''>" nel nodo da un response.body
var rp = require('request-promise'),
cheerio = require('cheerio');
var options = {
uri: 'http://www.google.com',
method: 'GET',
resolveWithFullResponse: true
};
rp(options)
.then (function (response) {
$ = cheerio.load(response.body);
var relativeLinks = $("img");
relativeLinks.each(function() {
var link = $(this).attr('src');
console.log(link);
if (link.startsWith('http')){
console.log('abs');
}
else {
console.log('rel');
}
});
});
risultati
/logos/doodles/2016/phoebe-snetsingers-85th-birthday-5179281716019200-hp.gif
rel
Possibile duplicato [ricevendo il percorso assoluto di un
] (http://stackoverflow.com/questions/ 3496491/getting-the-absolute-path-of-a-img) –
Midas
@Midas Questa domanda è strettamente correlata, ma non del tutto un duplicato di quell'altra domanda a causa delle differenze di implementazione tra DOM e jQuery in quel caso, e Cheerio in questo caso. Fare qualcosa come $ (this) o $ ('img') [0] .src non restituirà nulla in Cheerio. – Michael