本帖最后由 xmyjk 于 2012-6-10 11:55 編輯
借你的帖子講講吧,多頁數(shù)據(jù),我一般的操縱過程:
首先是看。
觀察網(wǎng)頁的URL,或者是用HTTPFOX看URL和參數(shù),如果POST的,看看是否GET也能獲取。然后試看看,是否能通過URL去改變頁面的切換。
如果可以,那就很簡單了。
然后,接著,試看看EXCEL自身自帶的功能,導入網(wǎng)頁數(shù)據(jù)能不能取到數(shù)據(jù),行的話,錄個宏改個循環(huán)就了事了。
因為EXCEL自帶的導入功能還是很強大,只要頁面是非轉(zhuǎn)跳或者腳本書寫或者框架的,就是直接源代碼有TABLE的代碼的,都是可以用QUERYTABLE直接取到的。
如果QUERYTABLE取不到數(shù),那一般網(wǎng)頁就是動態(tài)頁面或者框架頁面等情況啦,那我一般就會用HTTPFOX,進一步去查找網(wǎng)頁的真實數(shù)據(jù)源(一般就是第一頁換到第二頁這么去試,很容易找到的),找到了,后續(xù)無非很簡單,就是文本處理,使用XMLHTTP即可處理,后續(xù)無非就是注意調(diào)整HTTP的頭部消息,POST什么的。部分頁面比較變態(tài),有盜鏈處理,大部分XMLHTTP處理不了的,需要用WINHTTP這個對象,不過這個對象和XMLHTTP非常類似,反正無非是偽造COOKIE或者REFERER或者多頁面轉(zhuǎn)跳,我在論壇相應帖子的求助都有答過,你翻翻即知。
最后,如果是后綴是.asp或者.aspx的頁面,通常比較變態(tài),POST參數(shù)有“_VIEWSTATE”的這種,VIEWSTATE存在上一頁面中,要讀取的話就要訪問上一個業(yè)務,這種頁面一般就比較累,有時候用IE/WEBBROWSER去處理會比較簡單,原理也很簡單,就是你說的DOM的機制,去取數(shù),無非就是找到數(shù)據(jù)的TABLE,然后去TR,取TD,反正配合FIREBUG去觀察就是了。
最最后,就是一類,很變態(tài)的頁面,就是一種框架頁面,能禁止跨域訪問的,反正你搜搜我的帖子,后來我是用國外高手用JAVA寫的一些函數(shù),偽造一個容器,把框架剝離出來,然后訪問讀取。
總之,多動動手很重要,碰多了,就是知道哪些頁面怎么處理了。最后其實取數(shù)這塊,不需要有多少JAVASCRIPT的語言學習的,不過有了,也很多好處就是了。例如腳本生成數(shù)據(jù)的頁面,就可以用網(wǎng)頁的代碼,然后用MSScriptControl控件直接處理腳本,生成數(shù)據(jù)流,導出即可。
另外最近越來越多頁面是XML格式的了,反正取得XML文體后,用XML DOM繼續(xù)獲取就是了?;蛘撸部扇〉肏TML代碼,像你說的去頭截尾,不過,我使用Microsoft.XMLDOM對象或者直接調(diào)用HTML文檔對象,然后里面有
loadXML等方法,加載代碼文本,有時候也能成功構(gòu)建XML文體或HTML文體,也可打打簡化取數(shù)的操作。不過我很少這么做??偢杏X還不如是直接用IE方法算了。
最后,VBA里面處理網(wǎng)頁,其實會比較辛苦,如果你才剛?cè)胧钟钟幸欢ㄓ嬎銠C背景的,也是比較建議你直接去學AAU這個軟件的,好處就是庫很多參考代碼很多,可以導入庫啊或復制黏貼啊,很方便啊,不過前提就是,語法它比較類似JAVASCRIPT,最好要有相關(guān)的語言背景就是了。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。