ph

phantomjs-html

Render URLs and return their HTML content.

Showing:

Popularity

Downloads/wk

1

GitHub Stars

3

Maintenance

Last Commit

5yrs ago

Contributors

1

Package

Dependencies

2

Size (min+gzip)

1.8KB

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

phantomjs-html

The main goal of this project is to enable you to retrieve the HTML output of URLs. It also gives you some ExpressJS middlewares and methods to implement SEO for single page apps out of that.

Development state

This project is just a born baby. I tried the nice prerender but found it too complex for such a simple task. It also made our server crash a lot... So I made this one, which is a lot simpler and surely slower because it dosen't keep multiple instances of PhantomJS running.

How to use

var phantomjsHtml = require('phantomjs-html');

Exemples :

1. Get HTML from an URL

phantomjsHtml.getHTML('https://google.com', function(err, output){
  if(err){
    console.log('ERROR', err);
  } else {
    console.log('SUCCESS', output);
  }
});

1. Use the ExpressJS SEO middleware

This middleware need to be used before any routing is done. It will detect if the current request is made from a crawler using the user-agent and _escaped_fragment_. If a crawler is detected, it will return a PhantomJS rendering of the page that crawlers will adore.

// output PhantomJS render of pages if the request is made by a crawler
app.use(phantomjsHtml.middleware.SEO({
  overLocalhost: true
}));

3. delaying the PhantomJS output

In single pages apps, there is often JavaScript executed after the page has loaded to load or display datas. You can tell this module to wait until your app is ready like so :

In the <head> section of your HTML pages :

<script type="text/javascript">
  window.phantomjsHtmlReady = false;
</script>

And when your code is ready, just set phantomjsHtmlReady to true.

window.phantomjsHtmlReady = true;

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100