que fait de plus un navigateur

Le
Une Bévue
Si je vais à la page :
<http://www.dailymotion.com/video/x2p0tyx_emmanuel-todd-le-pays-est-dans-un-etat-de-vide-metaphysique_news>
avec un navigateur "standard" (Vivaldi), j'obtiens entre autres :

Date de publication : 04/05/2015
Durée : 16:37

mais si je charge la page soit avec un script ruby soit un script
phantomjs (donc qui active javascript) j'obtiens :

Date de publication : 01/01/1970
Durée :

Dans mon script ruby j'actionne bien le js :
html = open(url,
"User-Agent" => "Vivaldi/1.0.162.4",
"From" => "unbewusst.sein@fai.invalid",
"Referer" => "http://www.whatismyreferer.com/",
"X-JAVASCRIPT-ENABLED" => 'true') { |f| f.read }

Dans le script phantomjs j'imagine que c'est activé comme phantomjs est
un "headless" browser :
var url =
'http://www.dailymotion.com/video/x2p0tyx_emmanuel-todd-le-pays-est-dans-un-etat-de-vide-metaphysique_news';

page.open(url, function(status) {

var date = page.evaluate(function(s) {
return document.querySelector(s).innerText;
}, '.mrg-btm-xs');
console.log(date);

phantom.exit();
});
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SAM
Le #26351904
Le 08/05/15 07:28, Une Bévue a écrit :
Si je vais à la page :

avec un navigateur "standard" (Vivaldi), j'obtiens entre autres :



Ben ... moi j'obtiens rien !

Le plugin est outOfDate le mettre à Jour (il n'y a pas de MàJ pour mon
système :-( )
et ce c.n de DailyMotion ne sait pas que mon navigateur "lit" le HTML.5 :-(

Date de publication : 04/05/2015
Durée : 16:37

mais si je charge la page soit avec un script ruby soit un script
phantomjs (donc qui active javascript) j'obtiens :

Date de publication : 01/01/1970
Durée :



Mais ... où est-ce que tu vois ça ?
(tant avec que "san" navigateur)
???

Moi j'ai : 21601 vues
pas plus

Dans mon script ruby j'actionne bien le js :
html = open(url,
"User-Agent" => "Vivaldi/1.0.162.4",
"From" => "",
"Referer" => "http://www.whatismyreferer.com/",
"X-JAVASCRIPT-ENABLED" => 'true') { |f| f.read }



étalor ?

quelle version de JS ?

et il se base sur quelle référence pour calculer la date ?
C'est très compliqué les histoires de dates et d'heures !! format (US,
EN, FR ...) type de calendrier, langage utilisé, UTC ? etc. etc.

comment Ruby traduit-il le JS ? (ce qu'il en reçoit)

une date, le plus souvent est un nombre de millisecondes relativement à
une date prédéterminée et connue
faut encore que JS et Ruby se référent à la même ...
(et au milieu de tout ça y a la méthode propre au système de l'ordi)



Le rigolo de l'histoire :
si je fais
alert(document.lastModified)
suer la page donnée en lien,
j’obtiens
05/09/2015 19:45:31
!!!!

DailyMotion fait un peu ce qu'il veut avec les dates ?

--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Une Bévue
Le #26352084
Le 09/05/2015 20:00, SAM a écrit :
Le 08/05/15 07:28, Une Bévue a écrit :
Si je vais à la page :


avec un navigateur "standard" (Vivaldi), j'obtiens entre autres :



Ben ... moi j'obtiens rien !

Le plugin est outOfDate le mettre à Jour (il n'y a pas de MàJ pour mon
système :-( )
et ce c.n de DailyMotion ne sait pas que mon navigateur "lit" le HTML.5 :-(



ça je ne saurais dire, j'imagine que tu es en SL ?

Date de publication : 04/05/2015
Durée : 16:37

mais si je charge la page soit avec un script ruby soit un script
phantomjs (donc qui active javascript) j'obtiens :

Date de publication : 01/01/1970
Durée :



Mais ... où est-ce que tu vois ça ?



Capture écran :

(tant avec que "san" navigateur)
???

Moi j'ai : 21601 vues
pas plus

Dans mon script ruby j'actionne bien le js :
html = open(url,
"User-Agent" => "Vivaldi/1.0.162.4",
"From" => "",
"Referer" => "http://www.whatismyreferer.com/",
"X-JAVASCRIPT-ENABLED" => 'true') { |f| f.read }



étalor ?

quelle version de JS ?

et il se base sur quelle référence pour calculer la date ?
C'est très compliqué les histoires de dates et d'heures !! format (US,
EN, FR ...) type de calendrier, langage utilisé, UTC ? etc. etc.



ben il n'y a pas à calculer la date, il y a juste à copier le contenu
d'un span (ou autre) contenant la date.


comment Ruby traduit-il le JS ? (ce qu'il en reçoit)



Ruby ne reçoit pas le js dans ce cas, "normalement" il lit la page html
telle qu'elle se présente MAIS il y a un bémol (les guillemets autour de
'normalement') j'ai l'impression que tout le JS n'est pas éxécuté quand
ruby lit la page.

Ce qui est curieux c'est que phantomjs (un headless butineur) voit la
même chose que ruby, je ne pige pas.


une date, le plus souvent est un nombre de millisecondes relativement à
une date prédéterminée et connue



non, non, là c'est une date en String.

le contenu html de l'endroit où il y a la date est :
<li class="mrg-btm-xs"><span>Date de publication :</span> 04/05/2015</li>

(copié/collé après "Procéder à l'inspection de l'élément".

faut encore que JS et Ruby se référent à la même ...
(et au milieu de tout ça y a la méthode propre au système de l'ordi)



Le rigolo de l'histoire :
si je fais
alert(document.lastModified)
suer la page donnée en lien,
j’obtiens
05/09/2015 19:45:31
!!!!

DailyMotion fait un peu ce qu'il veut avec les dates ?




moi, j'obtiens ça :

c'est la date à laquelle j'ai fait le alert(document.lastModified).

notes bien que je n'injecte pas du tout du js dans la page, je prends la
page telle qu'elle est.
SAM
Le #26352199
Le 10/05/15 18:58, Une Bévue a écrit :
Le 09/05/2015 20:00, SAM a écrit :
Le 08/05/15 07:28, Une Bévue a écrit :
Si je vais à la page :

avec un navigateur "standard" (Vivaldi), j'obtiens entre autres :
Date de publication : 04/05/2015
Durée : 16:37

mais si je charge la page soit avec un script ruby j'obtiens :
Date de publication : 01/01/1970
Durée :



Mais ... où est-ce que tu vois ça ?



Capture écran :



Ha! Oui !
avec "mon" Firefox "à moi" :
- en HTML "brut" (sans JS) je vois comme Ruby
- avec JS activé, je vois comme Vivaldi

Dans mon script ruby j'actionne bien le js :
html = open(url,
"User-Agent" => "Vivaldi/1.0.162.4",
"From" => "",
"Referer" => "http://www.whatismyreferer.com/",
"X-JAVASCRIPT-ENABLED" => 'true') { |f| f.read }







Malheureusement ... ici ce n'est pas le NewsGroup "Ruby" ...
Je note cependant qu'il est indiqué "read" et non "execute"
je sais pas si ...

et il se base sur quelle référence pour calculer la date ?



ben il n'y a pas à calculer la date, il y a juste à copier le contenu
d'un span (ou autre) contenant la date



Ben non puisque ce contenu est modifié par le JS !

comment Ruby traduit-il le JS ? (ce qu'il en reçoit)



Ruby ne reçoit pas le js dans ce cas, "normalement" il lit la page html
telle qu'elle se présente MAIS il y a un bémol (les guillemets autour de
'normalement') j'ai l'impression que tout le JS n'est pas éxécuté quand
ruby lit la page.



comme en plus DalyMotion insère (via JS) tout un tas de fichiers HTML
extérieurs dans des iframes créées par le JS !!! va t'en savoir où est
caché le JS spécifique à cette date là !!! :-((

Code source de bas (sans iframe) est déjà rempli de :
document.createElement("script")
qui eux-mêmes ... ?? sur combien de niveaux ???
L'addon JSview de Firefox me dit qu'il y a là :
- 31 fichiers JS externes !!!!!!
- et 3 FdS

Ce qui est curieux c'est que phantomjs (un headless butineur) voit la
même chose que ruby, je ne pige pas.



dans ton navigateur "normal" désactive le JS et tu pigeras
désactive les css aussi tant qu'à y être (amusant toutes les lignes
blanches qd il y a le JS)

le contenu html de l'endroit où il y a la date est :
<li class="mrg-btm-xs"><span>Date de publication :</span> 04/05/2015</li>

(copié/collé après "Procéder à l'inspection de l'élément".



ben *justement* ce N'EST PAS du html !
enfin ... pas celui envoyé par le serveur (celui dans le fichier)

notes bien que je n'injecte pas du tout du js dans la page, je prends la
page telle qu'elle est.



enfin ... peut-être ?
Faudrait comparer celle finale obtenue par Vivaldi et celle par Ruby,
voir si elles ont les même iframes et autres fariboles
Est-ce que DM ne limite pas ses envois de scripts en fonction des
navigateurs qui le visitent ???


Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Une Bévue
Le #26352247
Le 11/05/2015 09:56, SAM a écrit :
dans ton navigateur "normal" désactive le JS et tu pigeras


ou iq, c'est une idée.
Publicité
Poster une réponse
Anonyme