[算表] VBA 網路爬蟲 陣列請教

作者: ji3g4al6al6 (毛毛)   2019-06-01 00:41:37
軟體:Excel
版本:2003
公司遇到異常回饋時,會上內部系統查詢生產紀錄來釐清問題。
查詢系統的網址是有規律性的,因無法提供檔案故舉例。
網址結構如下所示:
http://google&姓名=變數1&科目=變數2&Item=項目1&Item=項目2...之類的
我可能同時搜尋3個人的2個科目會跑出
http://google&姓名=王小明&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=李大華&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=陳美麗&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=王小明&科目=地理&Item=中國&Item=台灣
http://google&姓名=李大華&科目=地理&Item=中國&Item=台灣
http://google&姓名=陳美麗&科目=地理&Item=中國&Item=台灣
我的檔案Sheet1為查詢頁面,Sheet2為參數。
Sheet2欄位為
 A   B   C   D   E
1科目 項目一 項目二 項目三 項目四
2國文 文言文 應用文 六 書 
3地理 中 國 台 灣
4數學 排 列 三 角
5物理 力 學 光 學 電 學
我表單可能選擇文科,姓名輸入王小明和李大華和陳美麗會跑出下列組合去爬蟲
http://google&姓名=王小明&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=李大華&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=陳美麗&科目=國文&Item=文言文&Item=應用文&Item=六書
http://google&姓名=王小明&科目=地理&Item=中國&Item=台灣
http://google&姓名=李大華&科目=地理&Item=中國&Item=台灣
http://google&姓名=陳美麗&科目=地理&Item=中國&Item=台灣
目前程式碼是用土法煉鋼迴圈共同字串 & 取得變數 & 共同字串的方式組成URL。
再丟到網路爬蟲程式碼將個別網址結果存至陣列再解析。
但是當姓名數或科目數變多時,執行速度會變得非常慢,
想請教在組成網址這段程式碼有辦法寫成陣列來組合嗎?
例如:陣列1元素是共同字串,陣列2元素是變數,再組合運算得到網址。
作者: soyoso (我是耀宗)   2019-06-01 08:22:00
每個科目共同字串 & 取得變數 & 共同字串這方面如是用迴圈連接的話,可改以join,分隔符號" ",rtrim來去除空格,replace將空格取代為"&Item="join的sourcearray以儲存格的話,有需要配合工作表函數transpose可減少這方面的迴圈的使用或是在儲存格以輔助欄公式取得,再以變數 = range巢狀迴圈將姓名連接至上述陣列內,看是否可以改善
作者: ji3g4al6al6 (毛毛)   2019-06-02 08:55:00
謝謝soyoso大,明天上班來測試看看

Links booklink

Contact Us: admin [ a t ] ucptt.com