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 wget pour télécharger la page et utiliser une sorte de moteur JavaScript côté client pour formater les données telles qu'elles seraient affichées dans un navigateur?

21
demandé sur guaka 2011-05-05 21:16:06

3 réponses

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 des données.

23
répondu Alex Wayne 2015-07-09 12:04:03

Voici un simple petit script phantomjs 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();
});

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

Changer /path/to, url et filename pour ce que vous voulez.

4
répondu 2015-12-09 09:52:21

Pas avec wget, car je doute qu'il inclue n'importe quelle forme de moteur JavaScript. Toutefois, vous pouvez utiliser WebKit pour traiter la page, et donc la sortie.

En utilisant des choses comme celle-ci comme base pour obtenir le contenu: http://situated.wordpress.com/2008/06/04/take-screenshots-of-a-website-from-the-command-line/

1
répondu drowe 2011-05-05 17:18:55