首先创建一个类,用来获取当前页面的链接:
public class Link
{private String frontStr;private String behindStr;public String linkStr;public Link(){frontStr = "http://www.imomoe.ai/so.asp?page=";behindStr = "&dq=%C8%D5%B1%BE&pl=time";}public String getPageLink(int page){String temp = frontStr + (String.valueOf(page)) + behindStr;return temp;}
}
然后创建一个Html类:
public class Html
{private String htmlStr;public Html(){htmlStr = null;}public void loadHtml(int page) throws Exception{Link link = new Link();String linkStr = link.getPageLink(page);URL url = new URL(linkStr);HttpURLConnection conn = (HttpURLConnection)url.openConnection();conn.setRequestProperty("Accept", "text/html");conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.9");conn.setRequestProperty("Host", "www.baidu.com");conn.setRequestProperty("Cache-Control", "max-age=0");conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36");conn.connect();int code = conn.getResponseCode();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));String line = "";htmlStr = "";while ((line = bufferedReader.readLine()) != null){htmlStr += line;}}public String getHtmlStr(){return htmlStr;}
}
然后创建动漫类Anime类获取动漫名字符串:
public class Anime
{private Html html;private ArrayList<StringBuffer> list;public Anime(Html html){this.html = html;list = null;}public ArrayList<StringBuffer> getNameList(){String str = html.getHtmlStr();list = SubStr.separateBetweenStr(Conver.nsb(str), "alt=\"", "\" /></a>");return list;}
}
最后的Main类:
public class Main
{public static void main(String[] args) throws Exception{int i = 0;ArrayList<StringBuffer> totalName = new ArrayList<>();for (i = 1;i <= 416;++i){Html html = new Html();html.loadHtml(i);Anime anime = new Anime(html);totalName.addAll(anime.getNameList());}Out.println(totalName);}
}
运行结果: