[算表] 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