Move to a reverse-engineered approach instead of PhantomJS