美文网首页
1.3java根据多级框创建多级文件夹

1.3java根据多级框创建多级文件夹

作者: 文茶君 | 来源:发表于2019-11-20 15:32 被阅读0次
    public class craw {
    
        public static void main(String[] args) throws IOException{
            Map<String, String> map = new HashMap<>();
            int m=0;
            String filename1;//一级目录名
            String filename2;
            String filename3;
            String path="C:\\Bird";
            int size;//多页情况
            boolean flag=true;//设立标志位,因为只有第一张图会点进去爬两张介绍信息,其他图都不用爬
            File myPath = new File(path);
               if ( !myPath.exists()){//若此目录不存在,则创建
                       myPath.mkdir();
                       System.out.println("创建文件夹路径为:"+ path);
            }
               
               
               String responseContent1 = HttpClientUtil.getInstance().sendHttpPost("https://birdnet.cn/atlas.php");
               Document document1=Jsoup.parse(responseContent1);
               Elements getclass=document1.getElementsByClass("pih");
               Elements search=getclass.select("#search_from_1");
               Elements  els1=search.select("[name='collect_1'] > option");//获得collect1里的值
            
               for(Element el1: els1){ 
                        
                            if(el1.attr("value")!=""){//排除了请选择选项
                             map.put("collect_1", el1.attr("value"));
                             filename1=el1.text();//开始创建一级文件夹
                             String responseContent2 = HttpClientUtil.getInstance().sendHttpPost("https://birdnet.cn/atlas.php?mod=show&action=atlaslist", map);
                             Document document2=Jsoup.parse(responseContent2);
                             Elements els2=document2.select("#collect_2> option");//获取collect2中的值
                            for (Element el2: els2) {
    
                                    if(el2.attr("value")!=""){//这是进入第三层,过滤掉“请选择”这个选项
                                        map.put("collect_2", el2.attr("value"));
                                        filename2=el2.text();
                                        String responseContent3 = HttpClientUtil.getInstance().sendHttpPost("https://birdnet.cn/atlas.php?mod=show&action=atlaslist", map);  
                                        Document documentcol3=Jsoup.parse(responseContent3);
                                        Elements els3=documentcol3.select("#collect_3> option");//获取collect3中的值,到这列表数据就爬完了
                                            for (Element el3: els3) {
                                                try{
                   
                                            
                                                if(el3.attr("value")!=""){
                                                    filename3=el3.text();
                                                    try {
                                                        File dir = new File("C:\\Bird"+"\\"+filename1+"\\"+filename2+"\\"+filename3);
                                                        if (!dir.exists()) {
                                                            dir.mkdirs();
                                                        }       
                                                              }   
                                
                                    
                                                        }//第二个for循环结束
                                                       }
    
            
                               }//第一个for循环结束
                   
        }
        }
    

    这里我把路径设置为File("C:\Bird"+"\"+filename1+"\"+filename2+"\"+filename3);
    mkdirs和mkdir是不一样的,mkdirs可以创建该文件,如果该文件父目录不存在,则一并创建,所以路径设置完成直接mkdirs就可以创建多级目录。


    图片3.png

    相关文章

      网友评论

          本文标题:1.3java根据多级框创建多级文件夹

          本文链接:https://www.haomeiwen.com/subject/empoictx.html