阿拉神灯

改变不了现实,那就去改变你的心态

2010年2月5日

HtmlParser抓取百度新歌TOP100

 

import org.htmlparser.NodeFilter;
import
 org.htmlparser.Parser;
import
 org.htmlparser.filters.HasAttributeFilter;
import
 org.htmlparser.filters.NodeClassFilter;
import
 org.htmlparser.filters.TagNameFilter;
import
 org.htmlparser.tags.LinkTag;
import
 org.htmlparser.tags.Span;
import
 org.htmlparser.tags.TableColumn;
import
 org.htmlparser.tags.TableRow;
import
 org.htmlparser.tags.TableTag;
import
 org.htmlparser.util.NodeList;
import
 org.htmlparser.util.ParserException;

public class
 test3 {
    
public static void main(String[] args) throws
 ParserException {
        String url 
= "http://list.mp3.baidu.com/top/top100.html"
;
        Parser parser 
= new
 Parser(url);
        NodeFilter filter_table 
= new NodeClassFilter(TableTag.class
);
        NodeFilter filter_span 
= new NodeClassFilter(Span.class
);
        NodeFilter filter_link 
= new TagNameFilter("A"
);
        NodeFilter filter_search 
= new HasAttributeFilter("class","search"
);
        NodeList nodelist 
=
 parser.extractAllNodesThatMatch(filter_table);
        
for(int i = 0  ; i < nodelist.size() ; i++
){
            TableTag table 
=
 (TableTag) nodelist.elementAt(i);
            
for(int j = 0 ; j < table.getRowCount() ; j++
){
                TableRow row 
=
 table.getRow(j);
                TableColumn[] column 
=
 row.getColumns();
                
for(int m = 0 ; m < row.getColumnCount() ; m++
){
                    String tempstr 
=
 column[m].getStringText() ;
                    parser 
= Parser.createParser(tempstr,"utf-8"
);
                    NodeList list_span 
=
 parser.extractAllNodesThatMatch(filter_span);
                    
if(list_span.size() > 0
){
                        
for(int i1 = 0 ; i1 < list_span.size() ; i1++
){
                            System.out.print(list_span.elementAt(i1).toPlainTextString() 
+ "  "
);
                        }
                    }
                    parser.reset();
                    NodeList list_link 
=
 parser.extractAllNodesThatMatch(filter_link);
                    
if(list_link.size() > 0
){
                        
for(int i1 = 0 ; i1 < list_link.size() ; i1++
){    
                            String content 
=
 ((LinkTag)list_link.elementAt(i1)).getLinkText() ;
                            
if(!content.equals(null
)){
                                System.out.print(content 
+ "  "
);
                            }
                        }
                    }
                    parser.reset();
                    NodeList list_search 
=
 parser.extractAllNodesThatMatch(filter_search);
                    
if(list_search.size() > 0
){
                        
for(int i1 = 0 ; i1 < list_search.size() ; i1++
){    
                            String link 
=
 ((LinkTag)list_search.elementAt(i1)).getLink() ;
                            
if(!link.equals(null
)){
                                System.out.print(link 
+ "  "
);
                            }
                        }
                    }
                }
                System.out.println();
            }
        }    
    }
}

posted @ 2010-02-05 09:41 阿拉神灯 阅读(212) | 评论 (0)编辑 收藏

<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论