美文网首页
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