您的位置:首页 > 编程语言 > Java开发

Java实验(11) 网页分析

2016-06-24 15:07 351 查看
抓取厦大主页中的“快速链接”下的所有内容。
提示,“快速链接”部分的HTML形如:
<li><a href="http://e.weibo.com/xmunews" target="_blank"><i class="icon icon-list-alt"></i>官方微博</a></li>
程序输出为:[序号] 标题 URL ,每行一个链接,如:

[1]官方微博 http://e.weibo.com/xmunews
[2]易班厦大 http://yiban.xmu.edu.cn/
[3]厦大网址导航 http://123.xmu.edu.cn/
……

import java.util.ArrayList;
import java.util.Scanner;

public class WebCrawler {

public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
ArrayList<String> list2=new ArrayList<>();

try{
java.net.URL url= new java.net.URL("http://www.xmu.edu.cn/");
Scanner input= new Scanner(url.openStream());
String s="icon icon-list-alt\"></i>";
String s2="<li><a href=";
int len=s.length();
int len2=s2.length();
int current=0,current2=0;

while(input.hasNext()){
String line=input.nextLine();
current = line.indexOf(s2,current);
current2=line.indexOf(s,current2);
//网址部分
while(current>0){
int endIndex= line.indexOf("target=\"_blank\"><i class=\"icon icon-list-alt\"></i>",current);
if(endIndex>0){
list.add(line.substring(current+len2+1,endIndex-2));
current =line.indexOf(s2,endIndex);
}
else
current=-1;
}
//标题部分
while(current2>0){
int endIndex2= line.indexOf("</a></li>",current);
if(endIndex2>0){
list2.add(line.substring(current2+len,endIndex2));
current2 =line.indexOf("target=\"_blank\"><i class=\"icon icon-list-alt\"></i>",endIndex2);
}
else
current2=-1;
}
}
}
catch(Exception ex){
System.out.println("Error: "+ex.getMessage());
}
for(int i=0;i<list.size();i++){
System.out.print("["+(i+1)+"]");
System.out.print(list2.get(i)+"\t");
System.out.println(list.get(i));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java