Javascript 使用Selenium或HTMLUNIT的HttpClient?

Javascript 使用Selenium或HTMLUNIT的HttpClient?,javascript,java,selenium,Javascript,Java,Selenium,好吧,我有点麻烦了。我遇到了JSoup的问题,因为页面需要Javascript来完成部分页面的加载。幸运的是,我在过去已经解决了这个问题(解析了原始javascript代码),它非常乏味。最近,我试图制作一个程序来登录一个网站,但它需要一个元素的令牌。除非执行JavaScript,否则表单元素是不可见的,所以我甚至无法提取它。所以我决定研究硒 第一个问题,这是我应该去的图书馆吗?我之所以如此热衷于使用HttpClient,是因为其中一些网站的流量非常高,而且不会一直加载,但我不需要一直加载这些页

好吧,我有点麻烦了。我遇到了JSoup的问题,因为页面需要Javascript来完成部分页面的加载。幸运的是,我在过去已经解决了这个问题(解析了原始javascript代码),它非常乏味。最近,我试图制作一个程序来登录一个网站,但它需要一个元素的令牌。除非执行JavaScript,否则表单元素是不可见的,所以我甚至无法提取它。所以我决定研究硒

第一个问题,这是我应该去的图书馆吗?我之所以如此热衷于使用HttpClient,是因为其中一些网站的流量非常高,而且不会一直加载,但我不需要一直加载这些页面。我只需要将它加载到足够的位置,以便检索登录令牌。一旦我发现了所需的方法,我更愿意使用原始JSON/POST方法与Web服务器通信,而不是让Selenium自动执行单击/等待/类型序列

基本上,我只需要selenium加载页面的1/4,就可以检索请求令牌。我程序的其余部分将使用HttpClient发送POST方法

还是我应该让selenium做所有的工作?我的目标是速度。我需要登录,快速购买物品


编辑:事实上,我可能会选择它,因为它非常小。我只需要抓取信息,我不想运行Selenium的独立服务器。这是更好的方法吗?

基本上,HtmlUnit比Selenium快,所以如果你想提高速度,你应该使用它。无论如何,请记住,Selenium有自己的HtmlUnitDriver实现。因此,作为另一种选择,您可以将Selenium与HtmlUnit结合使用。它们之间的区别在于HtmlUnit本身就是一个没有GUI的浏览器,而Selenium可以调用浏览器特性。您可能需要查看另一个问题以了解更多详细信息: