Ich versuche, Websites zu kratzen und ihre mailto
Links greifen:Javascript: Cherrio ist inkonsistente Ergebnisse für Anker-Tag Rückkehr
const url = "https://www.cverification.com/";
axios.get(url).then(({ data }) => {
const $_ = cheerio.load(data);
const mailToLink = $_('a[href^="mailto:"]');
console.log("maillllllllll: ", mailToLink);
if (!mailToLink || !mailToLink.length) {
console.log("NO EMAILLLL: ", url); // <------------ this prints
return;
}
const email = mailToLink.attr("href").replace("mailto:", "");
console.log("SUCCEEDEDDD", url, email);
});
ist jedoch Cheerio ein seltsames Objekt für einige der Verbindungen der Rückkehr:
maillllllllll: initialize {
options:
{ withDomLvl1: true,
normalizeWhitespace: false,
xml: false,
decodeEntities: true },
_root:
initialize {
'0':
{ type: 'root',
name: 'root',
namespace: 'http://www.w3.org/1999/xhtml',
attribs: {},
Dieses Skript funktioniert für einige Websites und nicht für andere. Wenn ich https://www.cverification.com/ besuche und den Code Zeile für Zeile (nur mit jQuery) ausführen, funktioniert es. Was mache ich falsch?
zufällige Ahnung hier, aber ich würde überprüfen, dass "Daten" zurückgegeben wird von Ihrer Anfrage erhalten ist ein String, bevor Sie es in cheerio laden. –
nur überprüft und ich kann überprüfen, dass es der HTML ist. guter Versuch, obwohl – Edmund
Ich überprüfte den Quellcode von https://www.cverification.com/ und wir sahen, dass es reagiert. Da cheerio JavaScript-Code nicht ausführt, kann es die Anker, die Sie suchen, nicht finden – kakamg0