Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1322659
  • 博文数量: 334
  • 博客积分: 10302
  • 博客等级: 上将
  • 技术积分: 2986
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 10:17
文章分类

全部博文(334)

文章存档

2013年(1)

2012年(9)

2011年(4)

2010年(10)

2009年(24)

2008年(64)

2007年(72)

2006年(150)

我的朋友

分类: Java

2008-11-21 01:35:56

因為之前工作需要,老闆叫我分析Html中的table資料,我也有找資料,只是有些看不太懂,也有發問
也被一些人打了回票,所以我就自己研究,算是小有成就,但比起論壇中的大師們,我只是小螞蟻,
我今天要發表出來,或許下個人有個參考方向,這程式改進地方有很多,各位先進大師們,小弟不才
我只學了2個月的Java,往後路很長,希望各位指導小弟一下,感激!!!
小弟用的工具是Jericho HTML Parser,Google一下應該可以找到。
程式很鳥,笑笑就好~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32


"content-type" content="text/html; charset=big5">
HTML Parser
"generator" content="Namo WebEditor">


"2" face="Arial,Verdana">Test Name
"2" face="Arial,Verdana">Result
"2" face="Arial,Verdana">Time
"2" face="Arial,Verdana">Synopsis
"1" face="Arial,Verdana">9   cdrouter_dhcp_20
"1" face="Arial,Verdana">+FAIL "v4_wireless_802.1x_full/cdrouter_dhcp_20.txt">[log]
"1" face="Arial,Verdana">12:31
"1" face="Arial,Verdana">DHCP client ignores DHCP packets with corrupt UDP checksum
"1" face="Arial,Verdana">1   cdrouter_basic_1
"1" face="Arial,Verdana">Pass "v4_wireless_802.1x_full/cdrouter_basic_1.txt">[log]
"1" face="Arial,Verdana">00:00
"1" face="Arial,Verdana">Router responds to ARP Request on LAN interface


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import au.id.jericho.lib.html.*;
import java.util.*;
import java.io.*;
import java.net.*;
 
public class HtmlParser
{
    public static void main(String[] args) throws Exception
    {
        String sourceUrlString="v4_wireless_wpa_dhcp_full.html";
        
        if(sourceUrlString.indexOf(':') == -1)
            sourceUrlString ="file:"+sourceUrlString;
            
        Source source=new Source(new URL(sourceUrlString));
        List Elements_TABLE=source.findAllElements(HTMLElementName.TABLE);
        Elements_TABLE.remove(0);
        Iterator it_TABLE = Elements_TABLE.iterator();
        while(it_TABLE.hasNext())
        {
            Element Element_TABLE = (Element)it_TABLE.next();
            Segment getContent_TABLE = (Segment)Element_TABLE.getContent();
            List Elements_TR = getContent_TABLE.findAllElements(HTMLElementName.TR);
            Elements_TR.remove(0);
            Iterator it_TR = Elements_TR.iterator();
            while(it_TR.hasNext())
            {
                Element Element_TR = (Element)it_TR.next();
                Segment getContent_TR = (Segment)Element_TR.getContent();
                List Elements_FONT = getContent_TR.findAllElements(HTMLElementName.FONT);
                Iterator it_FONT = Elements_FONT.iterator();
                int i = 1;
                while(it_FONT.hasNext())
                {
                    Element Element_FONT = (Element)it_FONT.next();
                    Segment getContent_FONT = (Segment)Element_FONT.getContent();
                    String a1 = getContent_FONT.toString();
                    
                    if ( i == 1 )
                    {
                        int x = a1.lastIndexOf(';');
                        System.out.print(a1.substring( 
                            (a1.lastIndexOf(';'))+1 , a1.length() )+"," );
                    }
                    
                    if ( i == 2 || i == 3)
                    {
                        String y = a1.substring(0,5);
                        if( y.equals("Pass "))
                        {
                            System.out.print(a1.substring(0,4)+",");
                        }
                        else if ( y.equals("+FAIL"))
                        {
                            System.out.print(a1.substring(1,5)+",");
                        }
                        
                    }
                    
                    if (!it_FONT.hasNext())
                    {
                        System.out.print(a1);
                    }
                    //System.out.println(i + " = " + Element_FONT.getContent());
                    i++;
                }
                System.out.println();
            }
        }
    }
}


本程式就是用下面的Java Code去抓取上面Html文法中的TABLE中的資料。


阅读(3324) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~