web-dev-qa-db-fra.com

wget + JavaScript?

J'ai cette page Web qui utilise JavaScript côté client pour formater les données sur la page avant qu'elle ne soit affichée à l'utilisateur.

Est-il possible d'utiliser d'une manière ou d'une autre wget pour télécharger la page et d'utiliser une sorte de moteur JavaScript côté client pour formater les données telles qu'elles seraient affichées dans un navigateur?

25
Jake Wilson

Vous pourriez probablement y arriver avec quelque chose comme PhantomJS

Vous pouvez écrire un script phantomjs qui chargera la page comme le ferait un navigateur, puis prendre des captures d'écran ou utiliser JS pour inspecter la page et extraire les données.

25
Alex Wayne

Voici un petit script phantomjs simple qui déclenche javascript sur une page Web et vous permet de le retirer localement:

file: get.js

var page = require('webpage').create(),
  system = require('system'), address;

address = system.args[1];
page.scrollPosition= { top: 4000, left: 0}  
page.open(address, function(status) {
  if (status !== 'success') {
    console.log('** Error loading url.');
  } else {
    console.log(page.content);
  }
  phantom.exit();
});

Utilisez-le comme suit:
$> phantomjs /path/to/get.js "http://www.google.com" > "google.html"

En changeant /path/to, url et filename à votre guise.

6
user4401178

Pas avec wget, car je doute qu'il inclut toute forme de moteur JavaScript. Cependant, vous pouvez utiliser WebKit pour traiter la page, et donc la sortie.

Utiliser des choses comme cela comme base pour obtenir le contenu: http://situated.wordpress.com/2008/06/04/take-screenshots-of-a-website-from-the-command- ligne /

1
drowe