我不是一个纯粹的程序员,但具有良好的编程基础知识。我正在尝试自动化每月必须执行的数据下载过程(来自网站)。以下是我必须使用的网站:
http://hazards.fema.gov/femaportal/prelimdownload/searchLoad.action
如果您转到该链接,您将看到2个下拉菜单和一个按钮。如果从下拉列表中选择状态1.然后从下拉列表2中选择更新的县。然后按下按钮搜索3.页面刷新,您会看到许多下载链接。如果向下滚动到底部,您将看到“FIRM数据库”和zip文件的下载链接。我想为所有县的所有州下载这个。有人可以建议我最简单的方法和我应该使用的脚本语言。非常感谢你的帮助!!
答案 0 :(得分:1)
如果您查看FIRM Database
的下载链接,则可以看到您拥有的内容
state Name
和county name
作为参数。
Alabama的例子 - >蒙哥马利郡:
所以你可以创建一个包含所有可能性的txt文件(ID State a county),如下所示:
29447,Massachusetts,Bristol County
12996,Alabama,Montgomery County
32516,New Mexico,Otero County
并制作一个BAT文件,获取TXT文件中的值并重建链接:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=," %%a in ('type aaaa.txt') do (
set "$ID=%%a"
set "$State=%%b"
set "$County=%%c"
echo !$ID!
echo !$State!
echo !$County: =%%20!
start http://hazards.fema.gov/femaportal/prelimdownload/prelim/ProductsDownLoadServlet?pfiProdId=!$ID!^&stateName=!$state: =%%20!^&countyName=!$County: =%%20!
)
使用此解决方案,您必须确认所有下载。要解决此问题,您可以使用命令行工具,如WGET。在这种情况下,只需替换:
start http://hazards.fema.gov/femaportal/prelimdownload/prelim/ProductsDownLoadServlet?pfiProdId=!$ID!^&stateName=!$state: =%%20!^&countyName=!$County: =%%20!
with:
wget http://hazards.fema.gov/femaportal/prelimdownload/prelim/ProductsDownLoadServlet?pfiProdId=!$ID!^&stateName=!$state: =%%20!^&countyName=!$County: =%%20!
或者你可以使用@noodles他的VBS解决方案静默下载:Download file from dynamic link using VBScript or Powershell
对于全自动解决方案(没有txt文件)谁将在WEB页面的源代码中自动获取链接。使用其他脚本语言。