使用Java获取一个动漫网站所有的动漫名
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 list;
public Anime(Html html)
{
this.html = html;
list = null;
}
public ArrayList getNameList()
{
String str = html.getHtmlStr();
list = SubStr.separateBetweenStr(Conver.nsb(str), "alt=\"", "\" />");
return list;
}
}
最后的Main类:
public class Main
{
public static void main(String[] args) throws Exception
{
int i = 0;
ArrayList 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);
}
}
运行结果: