MATLAB | Comment utiliser MATLAB pour obtenir le meilleur dessin "PNAS" (avec près de 3 ans d'images)

Après des appels tant attendus, le code pour obtenir des dessins de "PNAS" est là, mais cette fois j'ai étudié pendant longtemps et je n'ai pas pensé à comment obtenir des dessins pour des articles payants, donc je n'ai téléchargé que des articles gratuits (principalement parce que J'ai peur de la contrefaçon), mais uniquement des articles gratuits Cela fait trois ans et il y a près de 1,7w d'images. En même temps, lorsque vous utilisez des téléchargements de code, vous devez toujours surfer sur Internet de manière scientifique. Par conséquent, il est recommandé de allez directement à la fin de l'article pour télécharger le package de compression d'image que j'ai organisé.

Écrivez le code et utilisez la ligne de commande pour exécuter getPNASJPG(YEAR).YEAR est l'année du journal, comme getPNASJPG(2022).S'il y a une erreur 403, exécutez-la après un certain temps et ça devrait aller. . code afficher comme ci-dessous:

function getPNASJPG(YEAR)
if nargin < 1
    YEAR = 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_issue
    url_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)
            try
            ibegin = 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)])
            catch
            end
        end
        kbegin = 1;
    end
    jbegin = 1;
end
end

Le code est configuré pour télécharger avec des points d'arrêt, c'est-à-dire que vous pouvez télécharger la moitié du programme interrompu et continuer le téléchargement après un certain temps.

En même temps, si vous voyez parfois une image et que vous souhaitez trouver l'article source à lire, le nom de l'image téléchargée par ce code marquera la source de l'image. Par exemple, vous êtes intéressé par l'image nommée pnas. 2212633120fig06 ci-dessous :

Entrez simplement le lien de l'article dans votre navigateur :

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

C'est bien la Fig.6, tout à fait juste !


Affichage partiel de l'image

Il y a une grande différence entre de bonnes images et de mauvaises images sur "PNAS". Chacun a le choix d'apprendre. Voici quelques images intéressantes :

2023


2022


2021


acquisition d'image

Netdisk Baidu

Fournissez des liens vers le disque réseau Baidu d'images au cours des trois dernières années, soit un total d'environ 1,7 w d'images :

2023 (2.49G-3209 feuilles)

Lien :
https://pan.baidu.com/s/1YxRmt53jH-_TXGg6zkqtIg?pwd=slan
Code d'extraction : slan

2022 (3.12G-3329 photos)

Lien :
https://pan.baidu.com/s/1vFcEy48oOklW9UOUShVeAA?pwd=slan
Code d'extraction : slan

2022 (3.02G-3359 photos)

Lien :
https://pan.baidu.com/s/1ItVAmS18DcwlCNsM2u5rwg?pwd=slan
Code d'extraction : slan

2021 (2.61G-3077 photos)

Lien :
https://pan.baidu.com/s/1XHYlxR9_s1Ly9LCtlfnrhQ?pwd=slan
Code d'extraction : slan

Prochain 2021 (photos 3.35G-3887)

Lien :
https://pan.baidu.com/s/1uCUoi_hUUKlZ3kfc2oI4Yw?pwd=slan
Code d'extraction : slan

gîte entrepôt

Si le disque réseau tombe en panne, vous pouvez vous rendre dans l'entrepôt gitee pour obtenir le dernier lien du disque réseau :

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

Je suppose que tu aimes

Origine blog.csdn.net/slandarer/article/details/131375607
conseillé
Classement