CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

programme script jvc Help

nektos
nektos
Niveau 10
28 mars 2017 à 20:55:17

Bonsoir j'ai besoin d'aide pour mon script

alors je rappelle l'objectif de ce script : depuis la liste des sujets (par exemple cette page https://www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm)

Je veut que mon script envoie une requête GET à chaque topic ainsi il va récupérer le contenu de chaque topic

et ensuite je pourrait utiliser les données du topic pour filtrer des mots, mettre des alertes etc ..

En ce moment j'en suis déjà à récupérer les liens des topics et il y a un problème

voila le script

var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        var htmlResp = xmlHttp.responseText;
        var parser=new DOMParser();
        var xmlDoc=parser.parseFromString(htmlResp,"text/xml");
        console.log(xmlDoc);
        var cell = xmlDoc.getElementsByClassName("lien-jv topic-title");
        for (i=0; i<cell.length + 1; i++) {
            console.log(cell[i]);
        }
    }
}
xmlHttp.open("GET", document.URL,true); // true for asynchronous 
xmlHttp.send(null);

Le script n'à aucune erreur

cependant lorsque je l’exécute voici ce qu'on peut voir dans la console chrome https://image.noelshack.com/fichiers/2017/13/1490723861-6b7f513bf62.png

Pour pas vous faire chier l'erreur c'est : XML Parsing Error: xmlParseEntityRef: no name

Alors je n'ai aucune d'idée d'ou ça peut venir désolé de mon manque d'expertise mais en tout cas c'est la ligne 144 qui possède le problème

Si vous avez des pistes n'hésitez pas

SINON (Ma deuxieme solutin) (C'est optionnelle ça va parler de regex)

Voila mon deuxieme code

var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        recupererContenu();
		}
    }
xmlHttp.open("GET", document.URL, true);
xmlHttp.send(null);

function recupererContenu() {
	var htmlResp = xmlHttp.responseText
    var s = htmlResp;
	var re = s.match(/(\/forums\/42.*?\.htm)/g);
	for (i=0; i<re.length;i++) {
		var InTopic = new XMLHttpRequest();
		InTopic.onreadystatechange = function() {
			if (InTopic.readyState == 4 && InTopic.status == 200) {
				var htmlInTopic = InTopic.responseText;
				console.log(htmlInTopic);
			}
		}
	}
}

pas d'erreur mais la console me retourne juste undefined ce que je ne souhaite pas

si vous avez des pistes encore n'hésitez pas

merci d'avance

nocturnex__-
nocturnex__-
Niveau 10
29 mars 2017 à 00:26:57

Pour le premier, pourquoi tu veux faire une requête pour récupérer le HTML de la page ? :(
Tu peux faire ça directement :


document.querySelectorAll(".lien-jv.topic-title").forEach(function (element) { 
      console.log(element.href);
});
[[sticker:p/1kkn]]
nektos
nektos
Niveau 10
29 mars 2017 à 20:28:24

Le 29 mars 2017 à 00:26:57 NocturneX__- a écrit :
Pour le premier, pourquoi tu veux faire une requête pour récupérer le HTML de la page ? :(
Tu peux faire ça directement :


document.querySelectorAll(".lien-jv.topic-title").forEach(function (element) { 
      console.log(element.href);
});
[[sticker:p/1kkn]]

Comme d'habitude NocturneX tu m'est d'une grande aide merci à toi :noel:

nektos
nektos
Niveau 10
31 mars 2017 à 17:29:14

yo j'ai besoin d'aide encore :noel:

voila le nouveau script

antipostou = function() {
var lien = document.querySelectorAll(".lien-jv.topic-title")
for (i=0;i<lien.length;i++) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var nouvDoc = document.implementation.createHTMLDocument().documentElement;
nouvDoc.innerHTML = xmlHttp.responseText;
var messageTopic = nouvDoc.querySelectorAll('.bloc-message-forum ');
}
}
xmlHttp.open("GET", lien[i].href, true);
xmlHttp.send(null);
if (messageTopic[0].innerHTML.match(/post ou/gi)) {
console.log("il y a un post ou")
lien[i].setAttribute("style","font color:red !important");
lien[i].style.cssText = 'color:red !important';
}
}
}

le code marche pas regardez ce que j'ai dans la console https://image.noelshack.com/fichiers/2017/13/1490820867-57086c38382.png

je ne sais pas ce que ça veut dire mais en tout cas à cause de ça tout le code est bloqué

si vous avez des idées n’hésitez pas

Message édité le 31 mars 2017 à 17:29:22 par nektos
nocturnex__-
nocturnex__-
Niveau 10
31 mars 2017 à 19:08:33

Pense à appeler la fonction après que tu l'aies déclaré :hap:

antipostou = function() {
    ...
}
antipostou();
Sous forums
  • Gestion des forums sans modérateurs
  • Sondages
  • Suggestions jeuxvideo.com
  • Boutique jeuxvideo.com
  • Demandes d'élections
La vidéo du moment