HelloWorld 善戰(zhàn)者,求之于勢(shì),不責(zé)于人;故能擇人而任勢(shì)。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁(yè) ::  :: 聯(lián)系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評(píng)論 :: 0 Trackbacks

          在網(wǎng)上那多人問(wèn),如何抓取iframe或其他所有的信息,對(duì)象等,其實(shí)很簡(jiǎn)單的,看了以下文章就明白了.

           

           

          去這里下載jdic

          https://jdic.dev.java.net/

           

          我用的是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>

          posted on 2011-04-20 14:36 helloworld2008 閱讀(249) 評(píng)論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 福清市| 博兴县| 东海县| 平陆县| 九寨沟县| 建德市| 威远县| 前郭尔| 青州市| 巴东县| 彭山县| 雅安市| 红河县| 新龙县| 海丰县| 华容县| 南京市| 多伦县| 伊宁市| 新和县| 武清区| 固原市| 遂溪县| 乾安县| 兴海县| 南华县| 罗源县| 公主岭市| 紫阳县| 阿巴嘎旗| 铜川市| 龙海市| 府谷县| 东港市| 东阿县| 岑溪市| 江达县| 黑山县| 博兴县| 都匀市| 蓬溪县|