這幾天維護網站的時候要加很多的新聞或者其它文章,因為經常到一個網站上找文章,所以就想,能不能做個程式,指定一個網址,讓ASP去搜尋這個網址上所有的文章,進而把搜尋回來的文章進行分析,把文章內容儲存到資料庫裡,這樣不就可以省去很多麻煩了嗎?
後來才知道,這個想法早就有人想過,也有人做過新聞小偷,呵呵,不過據說是php的,我沒見過,呵呵,反正報著一種開發的心態開始進行工作……
我記得以前收集的有一篇文章介紹的有如何用ASP擷取別人的網頁,拿出來一看,嗨,沒幾句代碼:
URL = http://news.sina.com.cn/
Set objInet = Server.CreateObject("InetCtls.Inet")
objInet.RequestTimeOut = 20
objInet.Url = URL
StrGet = objInet.OpenURL()
Response.Write StrGet
這不就簡單了。儲存成asp檔案調試,可是一調試,提示說CreatObject失敗,類別未授權使用,我暈,這個錯誤我還是第一次見過,有些時候FSO無法建立是因為伺服器登出了FSO的組件,可是這個不會啊,到網上一搜,好多人都說這個ActiveX控制項是IIS內建的,我暈,難道我的IIS有問題,把程式複製到server的系統上調試,還是報相同的錯誤,我暈了。我也不知道這個組件對應的是哪個檔案~
今天在我們群裡問高手這個問題,說是對應的檔案應該是MSINET.OCX,c:/winnt/system32裡找到了這個檔案,註冊一下,好,註冊成功,再偵錯工具,我暈,還是報錯。難道是我電腦上的這個檔案不能用?我暈,從網上下載了一個,重新註冊,還是不中,我寒~
繼續在網上找,哎,突然發現有個人也碰到問題了,不過人家說的跟我說的不是一個控制項,他的原文是這樣的:
關於VB調用MSWinsock控制項
Windows指令碼可以調用MSWinsock控制項獲得比較強大的網路訪問能力,但那個106KB的mswinsck.ocx(V6.0.89.88)不是系統內建的,這使得該控制項的實用性大打折扣。而且,指令碼要調用MSWinsock還必須克服一個困難。
以"MSWinsock"為關鍵字,使用百度搜尋網頁,可以獲得至少3個VBS調用MSWinsock控制項的例子:擷取本機IP、連接埠掃描和發在"黑防"的《VBS+MSWinsock打造靈巧UDP後門》。但是,當你下載並註冊mswinsck.ocx,然後嘗試那些代碼時,卻會得到一個"類別未授權使用(Class is not licensed for use)"錯誤,錯誤號碼0x80040112。那些代碼的作者似乎都以為MSWinsock和一般的控制項一樣,只要用regsvr32註冊就能正常使用了,沒有實際測試它的可移植性。而轉貼文章的人,更不會關心內容是否可*,一味地複製粘貼而已。結果,網上所有關於VBS調用MSWinsock的例子都是"空中樓閣",沒有一個跑的起來。國內如此,國外也一樣。所有對該控制項無法使用的質疑,都被人以"需要註冊"為理由打發了。當然,也有瞭解"真相"的人,但其給出的解決方案竟然是用VB重新寫個ocx封裝MSWinsock,這實在是@#$%^&!。
那麼,"真相"究竟是什嗎?搜尋"類別未授權使用"和錯誤號碼,這是個好主意,但結果不理想。我們需要逆向思考,為什麼原作者不會遇到錯誤。答案是原作者的mswinsck.ocx不是單獨註冊的,而是隨VB一起安裝的。其中的差別在於,後者會安裝VB控制項的設計時許可證(design-time license)。ActiveX控制項的License有兩種:設計時(design-time)和運行時(run-time)。當編譯調用了某個控制項的exe/dll/ocx時,編譯器會自動加入該控制項的運行時許可證,所以"重新寫個ocx封裝MSWinsock"這個辦法可行。使用指令碼直接調用MSWinsock時沒有運行時許可證,這時指令碼宿主會嘗試在註冊表中擷取設計時許可證,單獨註冊的MSWinsock沒有相應的設計時許可證,所以就出錯了。
在VS.NET安裝盤裡有VB6控制項的授權識別碼(\Extras\VB6 Controls\VB6Controls.reg),匯入註冊表後就能正常使用包括MSWinsock在內的VB6控制項了。
我想,是不是這個控制項也是因為這個問題才不能用的?好在這個文章的作者還把這個註冊表檔案分享權限設定了出來,趕緊下載回來。開啟一看,果然有一個Internet Transfer Control 6.0 license key,這個ITC不正是我想要的嗎?趕緊匯入到註冊表。再偵錯工具,我暈,可恥地失敗鳥~
不過這次失敗的原因是沒有重啟電腦,呵呵,重啟一下電腦,一切OK,哈哈哈。順便把原作者提供的註冊表檔案也傳上來,或許你也能用得著~
這下就可以好好的做我的文章小偷了~
20051111183658185.rar
http://www.ie999.net/g1ames/dll/Mswinsck.zip