关于Matlab下爬取网络图片问题

来源:互联网 发布:星星知我心演员胡家玮 编辑:程序博客网 时间:2024/05/24 02:25

因项目需要,需要爬取一些网上的图片,于是在Matlab下试了一下urlread、urlwrite和websave等,均没能成功爬取一张图片。当然,有些错误为一些网站拒绝被爬取,但是用Python轻松爬取,不知是否因为Matlab在这方面还不太成熟还是为何。后来,仔细查看urlwrite相关说明,设置了一些相关参数,爬取成功。其中按照注释的urlwrite则无法爬取成功。代码如下:

clcclears=urlread('http://blog.csdn.net/u011501388/article/details/78351305');pat='http://[^" \n=]*.jpg';expr= regexp(s, pat, 'match');fid=fopen('E:\images.txt','a');fprintf(fid,'\n%s\r\n',expr{:});fclose(fid);data=importdata('E:\images.txt');for i=1:length(data)a=data{i};% s=urlwrite(a,sprintf('%d.jpg',i));% s=urlwrite(a,a);try% options = weboptions('Timeout',Inf,'RequestMethod','post');% s=websave(a,a,'term','simulink','duration',7,options);s=urlwrite(a,sprintf('%d.jpg',i), 'UserAgent','MATLAB R2015b','Timeout',100,'Get',{'term','urlread'});catch ME    continueendI=imread(s);imwrite(I,strcat('E:\images\',int2str(i),'.jpg'));end 
其中网址为本人的blog网址,images.txt结果如下:


爬取的结果图片在images文件夹下,如图所示:


从结果可以看到,有些图片没能成功抓取。

现在把网址换成如下,可以爬取二次元图片

https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gbk&word=%B6%FE%B4%CE%D4%AA&fr=ala&ala=1&alatpl=adress&pos=0&hs=2&xthttps=111111

爬取结果如下:












参考:

1. websave

2. urlwrite with http authentication

3.urlwrite

4. urlread