Javascript pour tous ou cloaking éventuel ?

WRInaute accro
Bonjour

Mon site ( voir profil ), est un site de Turf.

Mon problème : Faire en sorte que mon site ne soit pas facilement copiable.

Pour celà, j'ai mis depuis longtemps les données de statistiques et de pronostics, en mode Javascript.

Mais, à l'époque les moteurs de recherche ne lisaient pas le Javascript.

Suivant en celà, les consignes de Google, j'ai présenté aussi aux bots, le code html d'origine, sans Javascript.

Maintenant, est-ce que c'est du cloaking ?

Google lit-il suffisamment le Javacript, pour que je présente du Javascript même aux bots ?

Ou bien suis-je obligé de faire du tout html ?

Je précise, que pour lire mon Javascript, il faut se lever tôt, le données ne sont pas dans les scripts eux-mêmes, mais chargées à distance en petit Ajax.

Avec des restrictions de timing et de type de lecture ( Ajax ).

Merci beaucoup de vos réponses.

Amicalement.
 
WRInaute accro
ortolojf a dit:
Je précise, que pour lire mon Javascript, il faut se lever tôt, le données ne sont pas dans les scripts eux-mêmes, mais chargées à distance en petit Ajax.
Tu peux dire quelle page exactement ?

Parce que ton site il se scrape sans souci:
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword">var&nbsp;</span><span class="syntaxdefault">page&nbsp;</span><span class="syntaxkeyword">=&nbsp;require(</span><span class="syntaxstring">'webpage'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">create</span><span class="syntaxkeyword">();<br />var&nbsp;</span><span class="syntaxdefault">address&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'https://www.pronostics-courses.fr/php/courses_nouvelles/new_courses.php'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">page</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">open</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">address</span><span class="syntaxkeyword">,&nbsp;function&nbsp;(</span><span class="syntaxdefault">status</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span class="syntaxdefault">status&nbsp;</span><span class="syntaxkeyword">!==&nbsp;</span><span class="syntaxstring">'success'</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">console</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">log</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Unable&nbsp;to&nbsp;load&nbsp;the&nbsp;address!'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">phantom</span><span class="syntaxkeyword">.exit(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="syntaxdefault">courses&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">page</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">evaluate</span><span class="syntaxkeyword">(function&nbsp;()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="syntaxdefault">noms&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">querySelectorAll</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'span.nom_course'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="syntaxdefault">courses&nbsp;</span><span class="syntaxkeyword">=&nbsp;[];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[].forEach.</span><span class="syntaxdefault">call</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">noms</span><span class="syntaxkeyword">,&nbsp;function&nbsp;(</span><span class="syntaxdefault">nom</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">courses</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">push</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">nom</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">textContent</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">courses</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">courses</span><span class="syntaxkeyword">.forEach(function&nbsp;(</span><span class="syntaxdefault">element</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">console</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">log</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">element</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">phantom</span><span class="syntaxkeyword">.exit();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />});&nbsp;</span><span class="syntaxdefault"></span>

1Md1424.png
 
WRInaute accro
spout a dit:
Tu peux dire quelle page exactement ?

Parce que ton site il se scrape sans souci:
PHP:
<span class="syntaxdefault">var page </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> require</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'webpage'</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">create</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">var address </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,4.html'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">page</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">open</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">address</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> function </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">status</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">status </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'success'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        console</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">log</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Unable to load the address!'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        phantom</span><span class="syntaxkeyword">.exit(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        var courses </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> page</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">evaluate</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">function </span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            var noms </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> document</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">querySelectorAll</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'span.nom_course'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            var courses </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[];<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[].forEach.</span><span class="syntaxdefault">call</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">noms</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> function </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">nom</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                courses</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">push</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">nom</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">textContent</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">});<br /></span><span class="syntaxdefault">            return courses</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">});<br /></span><span class="syntaxdefault">        <br />        courses</span><span class="syntaxkeyword">.forEach(</span><span class="syntaxdefault">function </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">element</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            console</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">log</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">element</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">});<br /></span><span class="syntaxdefault">        <br />        phantom</span><span class="syntaxkeyword">.exit();<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />});</span><span class="syntaxdefault"></span>


Bonjour spout ;)

J'ai changé l'url : Il faut que ce soit une url interne de statistiques.

Les stats sont sous <tbody id="statistiques">.

Les pronostics sont sous <tbody id="pronostics">

Merci de tester.

Respectueusement.
 
WRInaute accro
Bonjour spout

Donc, je peux mettre en javascript pour tout le monde, ou en html ?

Pour convertir mes sites, il me suffira d'agir sur la variable $is_bot

Et aussi : Le autres bots que Google voient aussi les pages javascript ?

Respectueusement.
 
WRInaute accro
Si tu veux utiliser du JS pour faire un site genre SPA, OK je comprend.
Si c'est pour éviter de se faire scraper, c'est inutile. Autant faire en HTML classique et le JS pour améliorer l'UX.
 
WRInaute accro
Bonjour spout

Bon, je vais remettre tout en html.

Mais les copieurs seront nombreux, et je crains fort que mon anti-aspirateur ne soit pas suffisant.

En tout cas, il n'y aura plus aucun cloaking.

Mon référencement devrait s'améliorer.

Merci beaucoup spout ! ;)
 
WRInaute accro
Bonjour

Là, j'ai un problème.

Depuis que j'ai mis mes stats en pur html, pour certaines pages de statistiques anciennes ( les moins visitées ), Page Speed Insights m'indique plus que 2 secondes de chargement.

Par exemple :

https://www.pronostics-courses.fr/php/courses_anciennes/pronostics_new ... 30101.html

( Il faut faire varier le paramètre, les courses sont depuis 2007 ).

Je sais que je fais un cache MySQL "maison" avec des fichiers ascii temporaires, mais la sortie du Javascript semble avoir empiré les choses.

J'ai mis à jour vers PHP 7.1-5 depuis deux semaines environ, mais celà ne devrait pas influer ?

Merci beaucoup spout. ;)

Respectueusement.
 
Discussions similaires
Haut