java桌面程序读取百度热搜的前10个关键字新闻

//用java读取百度新闻页面(http://news.baidu.com)右边前10个新闻热搜词,废话不多说,附上代码和截图

//速度比较慢,因为没做任何的优化,甚至里面的字符串的循环连接都是用的“+”号,有时间再改进吧

import java.net.*; 

import java.awt.*; 

import java.awt.event.*; 

import java.io.*; 

import javax.swing.*; 

public class Win{ 

    public static void main(String[] args){ 

        Get get = new Get(); 

        get.getInfo(); 

        W w = new W(get.getTitle(),get.getUrl()); 

        w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    } 

}  www.2cto.com

class W extends JFrame{ 

    String[] newsTitle; 

    String[] newsUrl; 

    JButton jbtn; 

    W(String[] title,String[] url){ 

        newsTitle = title; 

        newsUrl = url; 

        setTitle("TOP10百度热搜关键词(Ver 1.0)"); 

        setBounds(150,150,320,350); 

        setBackground(new Color(212,208,200)); 

        Panel panel = new Panel(); 

        EventDo eventDo = new EventDo(this); 

        panel.setLayout(new GridLayout(10,1)); 

        for(int i = 0;i < 10;i++){ 

            ButtonEx btn = new ButtonEx(newsTitle[i]); 

            btn.addActionListener(eventDo); 

            btn.setUrl(newsUrl[i]); 

            panel.add(btn); 

        } 

        add(panel,BorderLayout.NORTH); 

        Panel panel2 = new Panel(); 

        jbtn = new JButton("点击进入我的CSDN Blog :)"); 

        jbtn.addActionListener(eventDo); 

        panel2.add(jbtn); 

        add(panel2,BorderLayout.SOUTH); 

        setVisible(true); 

        setResizable(false); 

    } 

} 

class EventDo implements ActionListener{ 

    W w; 

    Desktop desktop; 

    EventDo(W w){ 

        this.w = w; 

        desktop = Desktop.getDesktop(); 

    } 

    public void actionPerformed(ActionEvent e){ 

        if(w.jbtn == e.getSource()){ 

            try{ 

                desktop.browse(new URI("http://blog.csdn.net/qingchuninfo")); 

            }catch(Exception ex){ 

                ex.printStackTrace(); 

            } 

        }else{ 

            try{ 

                desktop.browse(new URI(((ButtonEx)e.getSource()).getUrl())); 

            }catch(Exception ex){ 

                ex.printStackTrace(); 

            }    

        } 

 

    } 

} 

//获取新闻类返回两个数组 

class Get{ 

    String url = "http://news.baidu.com"; 

    URL u; 

    BufferedReader in; 

    String content; 

    String news; 

    String[] title = new String[10]; 

    String[] Url = new String[10]; 

    public void getInfo(){ 

        try{ 

            u = new URL(url); 

            in = new BufferedReader(new InputStreamReader(u.openStream())); 

            String s; 

            while((s = in.readLine()) != null){ 

                content += s; 

            } 

            in.close();  

        }catch(Exception e){ 

            e.printStackTrace(); 

        } 

        news = content.substring(content.indexOf("<dd class=\"hotwordstop\">"),content.indexOf("<div class=\"hotworddiv02 hotwords_cont\">")); 

        for(int i = 0;i < 10;i++){ 

            int startIndex = news.indexOf("<a href=\"http://news.baidu.com/"); 

            int endIndex = news.indexOf("</a>"); 

            int endUrl = news.indexOf("target=",startIndex); 

            Url[i] = news.substring(startIndex+9,endUrl-2); 

            int startTitle = news.indexOf("\">",endUrl); 

            title[i] = news.substring(startTitle+2,endIndex); 

            news = news.substring(endIndex+4);   

        }    

    } 

    public String[] getTitle(){ 

        return title; 

    } 

    public String[] getUrl(){ 

        return Url; 

    }         

} 

class ButtonEx extends JButton{ 

    ButtonEx(String title){ 

        super(title); 

    } 

    private String url; 

    public void setUrl(String url){ 

        this.url = url; 

    } 

    public String getUrl(){ 

        return url; 

    } 

} 


\


转载:http://www.2cto.com/kf/201111/112525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值