由于《地球物理学报》每一篇文章都有一个专门的链接,官网可以点击下载按钮免费下载,所以网页解析下载地址和可以实现自动下载。以最新一期(2020年4月第63卷 第4期)
为例,利用网页信息读取自动下载当期文献,方便阅读与检索。
通过webread函数解析网页编码,利用字符串处理函数过滤网页源码不相关的字符串,找到每篇文章的下载地址,再用urlwrite函数保存文件到指定的路径。
主要使用到以下5个函数,实现网页信息读取解析、字符串查找定位与替换、新建保存路径、文件保存等。函数详细使用说明请自行查阅,使用方式:doc function.m
doc webread
url = 'http://www.geophy.cn/CN/volumn/home.shtml'; % 学报官网
PaperDir = 'D:\Paper\Geophy\'; % 保存路径
if ~exist(PaperDir, 'dir') % 目录不存在则创建目录
mkdir([PaperDir Djq]);
end
url1 = 'http://www.geophy.cn/CN/';
S = webread(url);
s1 = regexp(S,'目次[');
Djq = S(s1 - 16 : s1 - 2); % 目前为第几期
T1 = 'title=复制索引 onClick="javascript:Copylist';
T2 = 'href="../article/downloadArticleFile';
s2 = regexp(S,T1);
s3 = regexp(S,T2);
NumPaper = length(s2); % 本期文章数量
disp(['=====《地球物理学报》' Djq '文章 自动下载...']);
%%
% 完整代码邮件发送"DownLoadGeophy"自动获取,jlubob@foxmail.com
%%
disp(['====一共用时:' sprintf('%.1f', toc/60) ' 分钟!']);
代码运行信息:
>> url = 'http://www.geophy.cn/CN/volumn/home.shtml'; % 学报官网
>> PaperDir = 'D:\Paper\Geophy\';
>> DownLoadGeophy(url, PaperDir)
=====《地球物理学报》2020年4月第63卷 第4期文章 自动下载...
==正在下载:2020年4月第63卷第4期目次.pdf
==正在下载:NOAA系列卫星高能粒子数据一致性统计分析.pdf
==正在下载:大尺度场向电流及其与单色极光电子的联系——Swarm卫星观测.pdf
==正在下载:利用半参数核估计法预报全球电离层总电子含量.pdf
==正在下载:曲靖非相干散射雷达电离层F区日间电子温度变化特征初步分析.pdf
==正在下载:场向电流极性和密度异常事件统计研究.pdf
...
==正在下载:含裂隙介质中的视电阻率各向异性变化.pdf
==正在下载:饱和岩石的动态渗透率和动电耦合系数解析式.pdf
==正在下载:逆时偏移在声反射成像测井中的应用方法研究.pdf
==正在下载:大斜度井·水平井随钻方位电磁波测井资料实时反演方法.pdf
====一共用时:11.6 分钟!
>>
MATLAB实现网页信息抓取比较简单。用到的函数全部为系统函数。下载速度和程序运行时间主要依赖于每篇文章保存到本地的速度。由于部分文章名称含有“\”等特殊字符串,直接保存时会当作路径分隔符,所以在代码中用“·”做了替换。通过找到每一期链接的命名规则,还可实现更多期的下载。甚至把所有的文章都下载下来。。就是不知道会不会被拉黑。。。。。。
另外,MATLAB还能实现网页自动填表,编目系统目录自动填表下载,观测报告自动下载功能,等等。一系列好玩的功能正在开发中。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。