先上福利图:
需求:利用爬虫将网上的图片下载到本地,然后超大图标预览。这里的文件命名是以时间年月日+标题命名。这里的网站就不告诉大家了,你们都比我懂。。。然后下载完后,把url写进txt中,下次爬取先从txt中判断是否存在,存在则不爬取该链接。
/*业务 start*/
String s_url = s_[0];
//判断url是否写入
if(!checkTxtEsist(txtFileName,s_url)){
String dirName = s_[2];
String time = s_[4].replaceAll(timeReplace, "");
File dirFile = new File(baseDir+time+dirName);
if(!dirFile.exists()){
dirFile.mkdirs();
logger.info("创建文件夹-'{}'成功",time+dirName);
}
//统计页数
String htmlSource2 = _cmsUtil.getHtmlResourceByUrl(s_url,encoding);
htmlSource2 = htmlSource2.replaceAll("\\s", "");
pat2 = pat2.replaceAll("\\s", "");
Pattern pattern2 = Pattern.compile(pat2);
Matcher matcher2 = pattern2.matcher(htmlSource2);
String result2 = "";
while(matcher2.find()){
result2 += matcher2.group(1);
}
int pageNum = _bigDataUtil.serachWord(result2, "<span>");
if(pageNum == 0){
pageNum = 1;
}
//下载图片
for(int i = 0 ; i < pageNum; i++){
String s_url3 = s_url +"/"+ (i+1);
String htmlSource3 = _cmsUtil.getHtmlResourceByUrl(s_url3,encoding);
htmlSource3 = htmlSource3.replaceAll("\\s", "");
pat3 = pat3.replaceAll("\\s", "");
Pattern pattern3 = Pattern.compile(pat3);
Matcher matcher3 = pattern3.matcher(htmlSource3);
while(matcher3.find()){
String picUrl = matcher3.group(2);
logger.info("正在爬取图片:{}",picUrl);
_cmsUtil.downImages(baseDir+time+dirName, picUrl);
}
}
//写入追加txt
try {
_txtUtil.addTxtContent(txtFileName, s_url+",");
} catch (Exception e) {
e.printStackTrace();
}
}
/*业务 end*/
//需要util方法可以联系QQ490647751
可以加Q490647751,回复‘开通VIP获取Java爬虫技术批量下载美女图片不是事’获取代码学习。