在網(wǎng)上那多人問(wèn),如何抓取iframe或其他所有的信息,對(duì)象等,其實(shí)很簡(jiǎn)單的,看了以下文章就明白了.
去這里下載jdic
我用的是0.94版,eclipse 3.x
下截后
將jdic.dll,IeEmbed.exe,jdic.jar,MozEmbed.exe,packager.jar,tray.dll考貝到你的工程lib目錄(在工程上建立lib目錄),然后設(shè)置以上.jar文件到編譯路徑.
建一個(gè)jFrame,加一個(gè)JPanel
以下為代碼片斷, 用以下代碼加載瀏覽器
WebBrowser webBrowser = new WebBrowser();
panel_name.add(webBrowser, BorderLayout.CENTER);
webBrowser .setURL(new URL(http://www.google.com));
webBrowser .addWebBrowserListener(new WebBrowserListener() {
public void downloadStarted(WebBrowserEvent event) {;}
public void downloadCompleted(WebBrowserEvent event) {;}
public void downloadProgress(WebBrowserEvent event) {;}
public void downloadError(WebBrowserEvent event) {;}
public void documentCompleted(WebBrowserEvent event) {
//在這里寫(xiě)代碼
// 很COOL的功能,與腳本交互
StringBuffer jsBuff = new StringBuffer();
jsBuff.append(" var bodyhtml = document.body.innerHTML;"); //取當(dāng)前頁(yè)的內(nèi)容
String html = webBrowser .getContent(); //取當(dāng)前頁(yè)的內(nèi)容,這個(gè)不好用,在有iframe的網(wǎng)頁(yè)中不靈
jsBuff.append(" var hrefObj = document.getElementsByTagName('A');");
//....略,取頁(yè)面的N個(gè)內(nèi)容
//好了,好多人都問(wèn),如何取得iframe的內(nèi)容呢?jdic 的包沒(méi)有一個(gè)方法可以取得到的,看以上的腳本 var bodyhtml ,我們?cè)趺慈〉剿闹的?如果取得到,那一切問(wèn)題都可以解決.
String iframeScript= " var iframehtml = document.frames[0].body.innerHTML;"; //取得指定iframe的內(nèi)容
//在這里,可以與腳本變量的值進(jìn)行交互,完成我們想要的功能,確實(shí)很COOL
String iframeHtml = webBrowser .executeScript(iframeScript);
System.out.println(iframeHtml ); //出來(lái)的正是想要的,很簡(jiǎn)單吧?但是不知道的話,想破頭也不明白
//說(shuō)到這,其實(shí)大家已經(jīng)明白,用jdic可以操縱絕大多數(shù)的網(wǎng)站,比如時(shí)下流行的web網(wǎng)游,想到什么了?對(duì),寫(xiě)一個(gè)腳本外掛就是這么簡(jiǎn)單.
//快裝一個(gè)瀏覽器dom結(jié)構(gòu)查看插件,操控在你手中
}
public void titleChange(WebBrowserEvent event) {;}
public void statusTextChange(WebBrowserEvent event) {;}
public void windowClose(WebBrowserEvent arg0) {
}
});
</script>