線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1391
推到 Plurk!
推到 Facebook!

如何把瀏覽器內所有的網址連結抓出來

尚未結案
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-10 22:31:44 IP:61.216.xxx.xxx 未訂閱
前輩們好,想請教一個問題,當電腦有裝 FLASHGET 這套軟體的時候,他有一個功能是在 IE 上按右鍵,然後他會執行 FLASHGET 軟體,並且把目前網頁上的資料全部傳給,FLASH GET 解析出有超連結的字串,請問要如何才能達到這些功能? 1.把選單整合到 IE 右鍵功能表 2.把瀏覽器(IE)的本文資料,抓到我們自己開發的程式
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-11 09:36:47 IP:61.219.xxx.xxx 未訂閱
引言: 前輩們好,想請教一個問題,當電腦有裝 FLASHGET 這套軟體的時候,他有一個功能是在 IE 上按右鍵,然後他會執行 FLASHGET 軟體,並且把目前網頁上的資料全部傳給,FLASH GET 解析出有超連結的字串,請問要如何才能達到這些功能? 1.把選單整合到 IE 右鍵功能表 2.把瀏覽器(IE)的本文資料,抓到我們自己開發的程式
IE programming 我沒做過,不過我知道 IE 可以用 IWebBrowserApp 這個 interface 去 automate:
    #include <exdisp.h>    IWebBrowserApp* pWBApp = NULL;
if (FAILED(hr = CoInitialize(NULL)))
         {
            return;
         }             if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
            NULL,
            CLSCTX_SERVER,
            IID_IWebBrowserApp,
            (LPVOID*)&pWBApp)))
         {
            goto Error;
         }    
我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-11 10:02:26 IP:61.216.xxx.xxx 未訂閱
brant 兄感謝您回應小弟的問題,不過小弟看不太懂... ,請問上面那個些程式提供什麼功能,要如何使用呢?
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-11 10:51:26 IP:61.219.xxx.xxx 未訂閱
引言: brant 兄感謝您回應小弟的問題,不過小弟看不太懂... ,請問上面那個些程式提供什麼功能,要如何使用呢?
那只是抓出 IE 提供出來的介面 取得介面後,再利用介面提供的函式 可以對 IE 做到相當程度的控制 我是有 automate office 的經驗 但IE這方面的文件我沒有細看過 詳細說明可能就得請您去查說明文件囉~~ MSDN 裡應該都可以找到,可以試著用 automate,IE,Internet Explore 這些關鍵字去 search。 ps.需要 COM/ActiveX的一些基本知識。 我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~ 發表人 - brant 於 2003/04/11 10:53:02
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-11 11:27:05 IP:61.30.xxx.xxx 未訂閱
一個比較直覺的方法 當你在指定的HTML PAGE上按下右鍵 把整個HTML 檔交給你的程式去解析 然後FILTER特別的字串例如http ftp 再把後面的link 整個截出來,變成字串秀在您的畫面上 就達到您的要求了
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-11 11:42:50 IP:61.216.xxx.xxx 未訂閱
引言: 一個比較直覺的方法 當你在指定的HTML PAGE上按下右鍵 把整個HTML 檔交給你的程式去解析 然後FILTER特別的字串例如http ftp 再把後面的link 整個截出來,變成字串秀在您的畫面上 就達到您的要求了
謝謝版主大大的提示,小弟目前正是卡在無法取得 HTML 檔ㄚ ^^" 其實只要能夠取得目前 IE 所指定的 網址,或是網址的內容,剩下 的都不是問題
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-11 18:34:08 IP:61.219.xxx.xxx 未訂閱
 
#include <windows.h>
#define INITGUID
#include <initguid.h>
#include <exdisp.h>    void main()
{
        HRESULT hr;
        IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser
        BSTR bstrURL = NULL;            if (FAILED(hr = CoInitialize(NULL)))
        {
                return;
        }            if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
    NULL,
    CLSCTX_SERVER,
    IID_IWebBrowserApp,
    (LPVOID*)&pWBApp)))
        {
                goto Error;
        }
        pWBApp->get_LocationURL(&bstrURL);
        SysFreeString(bstrURL);    Error:            if (pWBApp) pWBApp->Release();
        CoUninitialize();
}    
以上應該是可以抓出 url,但是是 BSTR 的 type ,要轉成 LPCSTR 祝成功~ 我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~ 發表人 - brant 於 2003/04/11 18:34:58 發表人 - brant 於 2003/04/11 18:35:47
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-11 20:01:52 IP:61.216.xxx.xxx 未訂閱
brant 兄,謝謝你提供那麼寶貴的資料給小弟,但是仍無法抓到網址耶,小弟試著抓其他的參數,發現可以抓例如目前瀏覽器預設的路徑等等一些固定不會變的路徑,是不是程式在那邊仍有問題,謝謝你!
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-14 17:46:33 IP:61.219.xxx.xxx 未訂閱
補充一下: 我上面的 sample code 是開一個新的 Internet Explorer Control 所以抓到的url是空的 要找目前現有的 IE instance 要用 ShellWindows Object 來找 再配上類似之前提到 interface 來讀取所需的資料。 請參考 MSDN: HOWTO: Connect to a Running Instance of Internet Explorer (Q176792)    還有另外一種做法是寫一個 COM object 註冊為 Browser Helper Object 每當 IE 開啟的時候,這個 COM object 就會被叫起來並可以 monitor IE 請參考 MSDN: Controlling Internet Explorer 4.0 with Browser Helper Objects         我的回答喜歡只給一個方向,剩下的就靠你自己了!!! ~~不喜歡大大來大大去的,沒事不要往我臉上塗奶油~~
China Join
中階會員


發表:81
回覆:242
積分:89
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-14 20:44:14 IP:61.216.xxx.xxx 未訂閱
感謝 Brant 兄的幫忙    小弟目前用監聽 80 port 的克難方式來處來,您的方法小弟會去嘗試ㄉ 再次感謝您的熱心幫忙 
系統時間:2024-05-08 6:42:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!