作者ji3g4al6al6 (毛毛)
看板Office
标题[算表] VBA 网路爬虫 阵列请教
时间Sat Jun 1 00:41:37 2019
软体: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元素是变数,再组合运算得到网址。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.173.168.61
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1559320899.A.029.html
1F:→ soyoso: 每个科目共同字串 & 取得变数 & 共同字串这方面如是用回圈 06/01 08:22
2F:→ soyoso: 连接的话,可改以join,分隔符号" ",rtrim来去除空格, 06/01 08:22
3F:→ soyoso: replace将空格取代为"&Item=" 06/01 08:22
4F:→ soyoso: join的sourcearray以储存格的话,有需要配合工作表函数 06/01 08:22
5F:→ soyoso: transpose 06/01 08:22
6F:→ soyoso: 可减少这方面的回圈的使用 06/01 08:22
7F:→ soyoso: 或是在储存格以辅助栏公式取得,再以变数 = range 06/01 08:22
8F:→ soyoso: 巢状回圈将姓名连接至上述阵列内,看是否可以改善 06/01 08:22
9F:→ ji3g4al6al6: 谢谢soyoso大,明天上班来测试看看 06/02 08:55