信息時(shí)代已經(jīng)到來(lái),,該如何好好利用網(wǎng)絡(luò)資源,?
爬蟲(chóng)的話(huà)首選Python,無(wú)奈,,對(duì)于我這樣半道出家非專(zhuān)業(yè)編程的工程人來(lái)說(shuō),,學(xué)習(xí)成本確實(shí)是個(gè)問(wèn)題。好在VB是當(dāng)年微軟的主推,,支持的庫(kù)不是最新最先進(jìn),,但起碼還有的用用。拋開(kāi)效率不講,,VB當(dāng)之無(wú)愧的是工程人員的首選,。
首先關(guān)于網(wǎng)抓應(yīng)該先了解兩樣工具:
一個(gè)是瀏覽器的F12調(diào)出來(lái)的開(kāi)發(fā)人員工具。
另一個(gè)是大名鼎鼎的Fiddler,。
這兩個(gè)工具用來(lái)分析網(wǎng)頁(yè),。
當(dāng)然,對(duì)于HTML的知識(shí)也是不能少的啦,。
可以參考:http://www.w3school.com.cn/html/index.asp
VBA網(wǎng)抓常用的方法有:
1,、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向服務(wù)器發(fā)送請(qǐng)求,接收服務(wù)器返回的數(shù)據(jù),。
優(yōu)點(diǎn):效率高,,基本無(wú)兼容性問(wèn)題。
缺點(diǎn):需要借助如fiddler的工具來(lái)模擬http請(qǐng)求,。
2,、IE/webbrowser法:
創(chuàng)建IE控件或webbrowser控件,結(jié)合htmlfile對(duì)象的方法和屬性,,模擬瀏覽器操作,,獲取瀏覽器頁(yè)面的數(shù)據(jù)。
優(yōu)點(diǎn):這個(gè)方法可以模擬大部分的瀏覽器操作,。所見(jiàn)即所得,,瀏覽器能看到的數(shù)據(jù)就能用代碼獲取。
缺點(diǎn):各種彈窗相當(dāng)煩人,,兼容性也確實(shí)是個(gè)很傷腦筋的問(wèn)題,。上傳文件在IE里根本無(wú)法實(shí)現(xiàn)。
3,、QueryTables法:
因?yàn)樗莈xcel自帶,,所以勉強(qiáng)也算是一種方法,。其實(shí)此法和xmlhttp類(lèi)似,也是GET或POST方式發(fā)送請(qǐng)求,,然后得到服務(wù)器的response返回到單元格內(nèi),。
優(yōu)點(diǎn):excel自帶,可以通過(guò)錄制宏得到代碼,,處理table很方便
。代碼簡(jiǎn)短,,適合快速獲取一些存在于源代碼的table里的數(shù)據(jù),。
缺點(diǎn):無(wú)法模擬referer等發(fā)包頭
引自:http://club./thread-1159783-1-1.html
直接上代碼:
對(duì)于xmlhttp法
亂碼的處理:
最后是分析返回的數(shù)據(jù)
處理table:
可以使用split以及replace分析
或者通過(guò)正則表達(dá)式分析。
還有:
html法
將table數(shù)據(jù)寫(xiě)入htmldocument對(duì)象,,然后循環(huán)取出表格的各個(gè)元素,。
QueryTable法
復(fù)制粘貼法:
table部分的文字可以直接復(fù)制到單元格內(nèi),且保留數(shù)據(jù)原格式,。
未完待續(xù)