找回密码
 注册
Simdroid-非首页
查看: 137|回复: 0

【原创】matlab下载数据

[复制链接]
发表于 2013-7-12 13:22:30 | 显示全部楼层 |阅读模式 来自 北京
很多时间需要从网上选择性地下载数据,有一些数据是需要现在网页中输入参数,然后再submit, 新的网页就会显示数据.  这些网页会把参数项置于url,直接对于url操作就可以获取相应的数据,比如下面一个链接是用来获取全球水位数据:
站点:ID 9075035
站名:Es**ville, MI
开始结束时间:bdate=20130101&edate=20130131
…………
这个可以通过matlabàurlread函数来读取字符串,再利用regexp或者其他函数来遴选数据
但是有些网页数据,比如下面这个获取地球自由电子密度数据的网页:



填写好参数之后,提交:
  



很明显这个pageurl中不包括任何的参数设置,而需要获取的数据可能成千上万,要用手动输入明显不现实。于是想到利用matlab来批处理下载所需数据。
很明显这个pageurl中不包括任何的参数设置,而需要获取的数据可能成千上万,要用手动输入明显不现实。于是想到利用matlab来批处理下载所需数据。以下为解决的方案:
step 1à安装wget for windows
因为涉及到参数的填写,matlab自带的函数已经捉襟见肘,wget 是一个开源的库可以进行http ftp以及其他类型协议的下载(当然也可以用curl 库,但是没细找是否有windows version),wget 也将附在帖子后。
step 2à设置路径
安装完之后,需要把D:\Program Files\GnuWin32\bin文件夹下面5个文件复制到matlab工作路径(或者设置path即可,如果不行的话在电脑属性中的环境变量中把bin的路径加入)(也可以把wget.exe放到c:\windows下,使用命令提示符也可以下载)。
step 3à数据下载
  1. cmd=['wget --post-data',...
  2.      ' "model=cgm&year=2000&height=100.&',...
  3.      'geo_flag=1&latitude=45.00&longitude=270.0',...
  4.      '&profile=1&start=100.&stop=1000.&step=50.',...
  5.      '&format=0&vars=01&vars=04&vars=05&linestyle=solid&',...
  6.      'charsize=&symbol=0&symsize=&imagex=640&imagey=480" ',... 'http://omniweb.gsfc.nasa.gov/cgi/vitmo/vitmo_model.cgi -O test_wget.txt']
  7. system(cmd, '-echo')
复制代码
双引号中便是原网页中input 项,网页内容被保存在test_wget.txt。

利用matlab构造字符串很方便,然后进行批处理将会非常方便
wget功能非常强大,什么断点续传、断线重播之流全不在话下(完全可以PK迅雷了)。
详细的usage可以参照:
system('wget --help', '-echo')     % 或者system('wget -h', '-echo')
matlab是个很包容的平台,本帖主要是拓展一个matlab的使用范围,希望有更多的实用技巧出现。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

点评

纳闷,为什么输入的字符串好好的用星号替换了,原来代替的是S。E。X三个字母,无语  发表于 2013-7-12 13:25

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-19 23:15 , Processed in 0.034509 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表