我一直在使用HTTPBuilder
作为获取网站HTML内容的方式。例如,这就是我使用它的方式:
def http = new HTTPBuilder(url)
def root = http.get([:])
// Really just the standard approach.
现在这对于静态HTML网站非常有效,但是我现在正试图从加载执行Javascript的网站上获取数据,这会填充页面。例如this page。
我的问题是,在返回HTML内容之前,Grails / Groovy是否有本地方式等待所有Javascript执行完毕。如果不是原生的,那么第三方呢?
研究我已尝试
User-Agent
之类的东西。 答案 0 :(得分:1)
您使用的方法仅从服务器获取原始HTML内容。所以没有什么可以下载或执行任何代码。 Selenium可能会工作(或Geb,它周围的Groovy包装),但getPageSource method表示在JavaScript后获取HTML内容取决于驱动程序。您可能会发现其中一个驱动程序(chrome,firefox等)确实在JavaScript后返回结果。如果这不起作用,请尝试使用PhantomJS(blog post on what you want)。