Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the HTML source of a website with PhantomJS

Below is an example of PhantomJS that gets some element by DOM id from an external webpage:

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function(status) {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    var ua = page.evaluate(function() {
      return document.getElementById('myagent').textContent;
    });
    console.log(ua);
  }
  phantom.exit();
});

I want to get the entire HTML source of a webpage ... how do I do this?

like image 573
MOB Avatar asked Nov 24 '13 11:11

MOB


1 Answers

All you have to do is to use page.content

var page = require('webpage').create();
page.onError = function(msg, trace) {
  //prevent js errors from showing in page.content
  return;
};
page.open('http://www.httpuseragent.org', function () {
    console.log(page.content); //page source
    phantom.exit();
});
like image 148
Hessam Avatar answered Oct 13 '22 00:10

Hessam