Again, PhantomJS ought to be sufficient.