千呼万唤始出来,《PNAS》绘图获取的代码来啦,不过这次研究了半天也没想到如何获取付费文章的绘图,就只下载了免费文章(主要也怕侵权),不过光免费文章的图片三年了也有接近1.7w张了,同时使用代码下载时依旧需要科学上网,因此还是建议大家直接去文末下载我整理好的图片压缩包。

代码也放一下叭,使用方法就命令行运行 getPNASJPG(YEAR) YEAR 为该期刊的年份,例如getPNASJPG(2022),要是出现了啥403的报错,过段时间再运行应该就会自己好起来。。代码如下:

function getPNASJPG(YEAR)
if nargin < 1YEAR = 2023;
end
YEAR         = num2str(YEAR);
str_YEAR     = ['d',YEAR(1:3),'0','.y',YEAR];
options      = weboptions('Timeout',inf);
url_archive  = ['https://www.pnas.org/loi/pnas/group/',str_YEAR];
html_archive = webread(url_archive,options);
A_issue      = strfind(html_archive,'past-issue__content__item--all-details d-flex flex-column');
str_issue    = html_archive(A_issue(1)+50:A_issue(1)+100);
S1_issue     = strfind(str_issue,'|');
S2_issue     = strfind(str_issue,'</h2>');
str1_issue   = str_issue(S1_issue(1):S1_issue(2));
str2_issue   = str_issue(S1_issue(2):S2_issue);
num1_issue   = str2num(str1_issue(str1_issue>=48&str1_issue<=57));
num2_issue   = str2num(str2_issue(str2_issue>=48&str2_issue<=57));ibegin = 1; jbegin = 1; kbegin = 1;
forderName=['Year_',num2str(YEAR)];
if exist(['.\image_',forderName,'\ijkbreak.mat'],'file')load(['.\image_',forderName,'\ijkbreak.mat']);
end
if ~exist(['.\image_',forderName],'dir')mkdir(['.\image_',forderName]);
end
disp([ibegin,jbegin,kbegin])for i = ibegin:num2_issueurl_issue  = ['https://www.pnas.org/toc/pnas/',num2str(num1_issue),'/',num2str(i)];html_issue = webread(url_issue,options);A_article  = strfind(html_issue,'Research Article');Z_article  = strfind(html_issue,'Recent Issues');html_issue = html_issue(A_article(1):Z_article(1));B_article  = strfind(html_issue,'icon-open-access');A_article  = strfind(html_issue,'text-reset animation-underline');Z_article  = strfind(html_issue,'title="');for j = jbegin:length(B_article)tA_article   = A_article(find(B_article(j)<A_article,1));url_article  = html_issue(tA_article:Z_article(find(Z_article>tA_article,1)));url_article  = url_article(39:end-3);url_article  = ['https://www.pnas.org',url_article]; html_article = webread(url_article,options);A_JPG   = strfind(html_article,[url_article(find(url_article=='/',1,'last'):end),'/asset/']);Z_JPG   = strfind(html_article,'jpg" height=');for k = kbegin:length(A_JPG)tryibegin = i ; jbegin = j; kbegin = k;save(['.\image_',forderName,'\ijkbreak.mat'],'ibegin','jbegin','kbegin')url_JPG = ['https://www.pnas.org/cms/10.1073',html_article(A_JPG(k):Z_JPG(k)+2)];name_JPG = ['.\image_',forderName,'\',url_JPG(find(url_JPG=='/',1,'last')+1:end)];websave(name_JPG,url_JPG,options);disp(['Downloading Year-',YEAR,...' Issue-',num2str(i),' Artical-',num2str(j),...' Pic-',num2str(k),':',url_article(22:end)])catchendendkbegin = 1;endjbegin = 1;
end
end

代码设置了可断点下载,就是可以下载了一半中断程序后过段时间接着下。

同时如果有的时候看到一张图非常好想找找源文章读一读,此代码下载的图像名称就标注了图像的来源,比如对下图名为pnas.2212633120fig06的图感兴趣:

只需要在浏览器输入文章链接:

  • https://www.pnas.org/doi/10.1073/pnas.2212633120

确实就是Fig.6,完全对的上!


部分图像展示

《PNAS》上的图画的好的和画的差的就差别比较大了,大家有选择的学习哈,这里展示部分比较有趣的绘图:

2023


2022


2021


图像获取

百度网盘

提供近三年来图片百度网盘链接,共计约1.7w张:

2023(2.49G-3209张)

链接:
https://pan.baidu.com/s/1YxRmt53jH-_TXGg6zkqtIg?pwd=slan
提取码:slan

2022 上(3.12G-3329张)

链接:
https://pan.baidu.com/s/1vFcEy48oOklW9UOUShVeAA?pwd=slan
提取码:slan

2022 下(3.02G-3359张)

链接:
https://pan.baidu.com/s/1ItVAmS18DcwlCNsM2u5rwg?pwd=slan
提取码:slan

2021 上(2.61G-3077张)

链接:
https://pan.baidu.com/s/1XHYlxR9_s1Ly9LCtlfnrhQ?pwd=slan
提取码:slan

2021 下(3.35G-3887张)

链接:
https://pan.baidu.com/s/1uCUoi_hUUKlZ3kfc2oI4Yw?pwd=slan
提取码:slan

gitee仓库

若网盘失效,可去gitee仓库获取最新网盘链接:

https://gitee.com/slandarer/pnas-figures

MATLAB | 如何使用MATLAB获取顶刊《PNAS》绘图(附带近3年图像)相关推荐

  1. 【Brain】登上国际顶刊 PNAS!科学家从理论计算机出发,提出了一个意识模型——「有意识的图灵机」...

    来源:墨玫人工智能 编译:AI 科技评论组 编辑:陈彩娴 深度学习三巨头之一的Yoshua Bengio也点头称赞. 5月下旬,国际顶刊<美国国家科学院院刊>(PNAS)发表了一篇其于去年 ...

  2. (顶刊复现)配电网两阶段鲁棒故障恢复(matlab实现)

    参考文献: X. Chen, W. Wu and B. Zhang, "Robust Restoration Method for Active Distribution Networks, ...

  3. Matlab Mobile手机版获取gps数据和加速度信号融合

    Matlab Mobile手机版获取gps数据和加速度信号融合 前言 安装matlab mobile Matlab Drive Connector 安装 Matlab Mobile 记录数据 Matl ...

  4. Matlab从移动设备获取加速度数据对步数进行计数

    Matlab从移动设备获取加速度数据对步数进行计数 本文分享如何从 Android或 iOS (我的手机是ios)移动设备收集加速度数据,并使用它来对行走步数进行计数. 1.设置移动设备 为了在 MA ...

  5. MATLAB学习笔记#001 获取矩阵大小

    MATLAB学习笔记#001 获取矩阵大小 size 函数 语法 说明 示例 参考链接 size 函数 语法 [sz1,...,szN] = size(___) 说明 返回矩阵各个维度的长度 示例 [ ...

  6. 使用MATLAB读取视频并获取视频信息、分帧保存

    题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域.因此,想写博客来记录自己的学习进度.老师安排的第一次任务为:用MATLAB读取视频, ...

  7. 遍历图像 找最小外接矩形 matlab,2018a版本MatLab利用regionprops函数获取图片中物体轮廓最小外接矩形...

    2018a版本MatLab利用regionprops函数获取图片中物体最小外接矩形 本次内容,用于介绍利用matlab中的regionprops函数来获取图像区域中的物体的最小外接矩形信息(位置(x, ...

  8. 配电网可靠性评估(4)—(顶刊复现)基于优化模型的配电网可靠性评估

    之前的博客中介绍了配电网可靠性评估的三种方法.分别是解析法中的最小路法,以及序贯蒙特卡罗模拟法及非序贯蒙特卡洛模拟法,顺带提到了含有分布式电源的配电网可靠性评估方法. 配电网可靠性评估(一)最小路法和 ...

  9. matlab 摄像头拍照,matlab摄像头拍照

    图像采集: 该单元是指道路上安装的摄像头在检测到有车辆通过的同时进行 拍照并...在 MATLAB 中我们可以调用 im2gray 函数对图像进行灰度化处理. 4.2.2图像的...... 2 车辆牌 ...

最新文章

  1. Button单击事件处理:
  2. 我对模板模式和策略模式的理解
  3. java求任意个数集合的笛卡尔积,Java中任意集的笛卡尔积
  4. html选择器_css的9个常用选择器
  5. Linux之GDB调试命令
  6. 分享一个基于jQuery,backbone.js和underscore.js的消息提示框架 - Backbone.Notifier
  7. 可爱的python测试开发库及项目(python测试开发工具库汇总)
  8. 在SQL Server中加入包含假设和CE模型变化
  9. php igbinary_php_igbinary.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  10. PrefTest性能测试解决方案 -- C/S结构应用系统的压力测试
  11. 计算机软件本科毕业生一般起薪多少,南京邮电大学本科毕业生平均薪资多少?一起来看看吧...
  12. 欧姆龙CP1H+CIF11与施耐德ATV变频器通讯程序
  13. 解决拯救者Y7000打游戏,看视频没有声音的问题
  14. 以太坊地址和公钥_《每日一课》第九课:什么是钱包、钱包地址、私钥、公钥?...
  15. linux 安装pureftp
  16. C++ float转换int
  17. python 超级秒表
  18. AI服务官上线“一网通办”:找政府办事就像逛网店
  19. 【游戏测试】客户端性能 - drawcall 工具链
  20. Docker从入门到干活,看这一篇够了!

热门文章

  1. Typora 软件修改主题中的字体
  2. 中国互联网金融协会挂牌在即
  3. 查看电脑显卡(GPU)是否支持CUDA及其版本
  4. 线性代数学习笔记(八)——矩阵概念
  5. switch接受的参数类型
  6. antd的switch组件传参
  7. vs2017打开html aspx文件左下方不显示设计-拆分-源视图的解决方法 不显示设计视图
  8. SAP-PM项目前期之现状调研:钢铁行业的设备管理体系
  9. matlab 强制暂停快捷键,matlab键盘快捷键无法使用的解决办法
  10. 分享一些 TS 的高级语法,带你进阶 TS