我想知道如何实现像HTTPClient这样的东西。 我尝试了WebBrowser类,但似乎即使指定的URL尚未加载,执行仍会继续。
public void testWebBrowser(){
final WebBrowser b = new WebBrowser(){
@Override
public void onLoad(String url) {
BrowserComponent c = (BrowserComponent)this.getInternal();
JavascriptContext ctx = new JavascriptContext(c);
// I want this Javascript context here
}
};
// just a test URL
b.setURL("http://youtube.com");
// Suppose to get the Javascript context here though it executes without waiting for the whole page to load
}
如何从WebBrowser上下文中获取JS Context?像同步执行一样
WebBrowser browser = new WebBrowser();
browser.setURL("someURL");
// wait execution till the whole page in "someURL" loads till it executes the next line
BrowserComponent c = (BrowserComponent)browser.getInternal();
JavascriptContext ctx = new JavascriptContext(c);
答案 0 :(得分:0)
如果我理解正确,您正在尝试创建一个抓取解决方案?
这可能不是理想的方法,因为这实际上会创建一个Web浏览器,然后您需要使用JavaScript自动化。我建议你创建一个封装HttpClient功能的web服务,并用ConnectionRequest
驱动它。这样,当网站发生变化时,您可以通过与已安装的基础无缝连接的方式修复服务器。