Excel 2013:编写Web查询文件提取网站下拉列表不同值
如何修改.iqy文件提取不同州的河流数据
嘿,作为编程零基础的新手也完全能搞定这个!我来一步步带你实现:
第一步:搞懂网站的参数逻辑
先打开目标河流列表页面,手动点击州选择的下拉框,选一个非华盛顿州的选项(比如俄勒冈州),然后看浏览器地址栏的变化——你会发现原本的URL后面多了类似?state=OR的后缀(也可能是数字ID,比如?stateID=5,具体以实际跳转后的地址为准)。这串后缀就是控制显示对应州数据的关键参数,每个州都有唯一的参数值。
如果选州后地址栏没变化,说明网站用了POST方式提交请求,没关系,后面我会讲怎么处理这种情况。
第二步:创建/编辑你的.iqy文件
.iqy本质是纯文本文件,用系统自带的记事本就能编辑:
- 如果你已经有默认的华盛顿州.iqy文件,直接右键选择“用记事本打开”;如果没有,就新建一个记事本,粘贴下面的基础模板:
WEB 1 http://www.professorpaddle.com/rivers/riverlist.asp Selection=EntirePage Formatting=All PreFormattedTextToColumns=True ConsecutiveDelimitersAsOne=True SingleBlockTextImport=False DisableDateRecognition=False DisableRedirections=False
- 接下来修改URL部分:把第一步找到的参数加到URL末尾,比如要提取俄勒冈州的数据,就把URL改成
http://www.professorpaddle.com/rivers/riverlist.asp?state=OR - 如果是POST请求(地址栏无变化),就在URL下面加一行
POSTDATA=参数名=参数值,比如假设州参数名是stateID,对应值是3,修改后的内容如下:
WEB 1 http://www.professorpaddle.com/rivers/riverlist.asp POSTDATA=stateID=3 Selection=EntirePage Formatting=All PreFormattedTextToColumns=True ConsecutiveDelimitersAsOne=True SingleBlockTextImport=False DisableDateRecognition=False DisableRedirections=False
- 最后记得保存文件:选择“另存为”,文件类型选“所有文件”,后缀名改成
.iqy(比如命名为river_query.iqy),避免存成.txt格式。
第三步:导入到Excel
双击你修改好的.iqy文件,Excel就会自动帮你导入对应州的表格数据啦!
顺便学点HTML小知识
你可以右键网页选择“查看页面源代码”,找到州选择的下拉菜单区域,大概是这样的代码:
<select name="stateID"> <option value="1">华盛顿州</option> <option value="2">俄勒冈州</option> <!-- 其他州的选项 --> </select>
这里的name属性就是参数名(比如stateID),value属性就是每个州对应的唯一ID,把这些对应到.iqy文件里,就能轻松获取任意州的数据啦!
内容的提问来源于stack exchange,提问作者Daniel Harris
相关产品推荐
相关产品推荐

