最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Java實(shí)現(xiàn)解析網(wǎng)頁中的內(nèi)容

 更新時(shí)間:2022年10月11日 11:43:15   作者:小虛竹and掘金  
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言做一個(gè)解析指定網(wǎng)址的網(wǎng)頁內(nèi)容小應(yīng)用,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試下

一、題目描述

題目實(shí)現(xiàn):做一個(gè)解析指定網(wǎng)址的網(wǎng)頁內(nèi)容小應(yīng)用。

二、解題思路

創(chuàng)建一個(gè)類:InternetContentFrame,繼承JFrame窗體類。

定義一個(gè)getURLCollection()方法:用于解析網(wǎng)頁內(nèi)容

使用URLConnection類的getInputStream()方法 獲取網(wǎng)頁資源的輸入流對象。

三、代碼詳解

InternetContentFrame

package com.xiaoxuzhu;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre>
 * 修改記錄:
 * 修改后版本	        修改人		修改日期			修改內(nèi)容
 * 2022/5/23.1	    xiaoxuzhu		2022/5/23		    Create
 * </pre>
 * @date 2022/5/23
 */
public class InternetContentFrame extends JFrame {

    private JTextArea ta_content;
    private JTextField tf_address;
    /**
     * Launch the application
     * @param args
     */
    public static void main(String args[]) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    InternetContentFrame frame = new InternetContentFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame
     */
    public InternetContentFrame() {
        super();
        setTitle("解析網(wǎng)頁中的內(nèi)容");
        setBounds(100, 100, 484, 375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final JPanel panel = new JPanel();
        getContentPane().add(panel, BorderLayout.NORTH);

        final JLabel label = new JLabel();
        label.setText("輸入網(wǎng)址:");
        panel.add(label);

        tf_address = new JTextField();
        tf_address.setPreferredSize(new Dimension(260,25));
        panel.add(tf_address);

        final JButton button = new JButton();
        button.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                String address = tf_address.getText().trim();// 獲得輸入的網(wǎng)址
                Collection urlCollection = getURLCollection(address);// 調(diào)用方法,獲得網(wǎng)頁內(nèi)容的集合對象
                Iterator it = urlCollection.iterator();  // 獲得集合的迭代器對象
                while(it.hasNext()){
                    ta_content.append((String)it.next()+"\n");       // 在文本域中顯示解析的內(nèi)容
                }
            }
        });
        button.setText("解析網(wǎng)頁");
        panel.add(button);

        final JScrollPane scrollPane = new JScrollPane();
        getContentPane().add(scrollPane, BorderLayout.CENTER);

        ta_content = new JTextArea();
        ta_content.setFont(new Font("", Font.BOLD, 14));
        scrollPane.setViewportView(ta_content);
        //
    }
    public Collection<String> getURLCollection(String urlString){
        URL url = null;                             // 聲明URL
        URLConnection conn = null;                  // 聲明URLConnection
        Collection<String> urlCollection = new ArrayList<String>(); // 創(chuàng)建集合對象
        try{
            url = new URL(urlString);               // 創(chuàng)建URL對象
            conn = url.openConnection();            // 獲得連接對象
            conn.connect();                         // 打開到url引用資源的通信鏈接
            InputStream is = conn.getInputStream(); // 獲取流對象
            InputStreamReader in = new InputStreamReader(is,"UTF-8"); // 轉(zhuǎn)換為字符流
            BufferedReader br = new BufferedReader(in); // 創(chuàng)建緩沖流對象
            String nextLine = br.readLine();            // 讀取信息,解析網(wǎng)頁
            while (nextLine !=null){
                urlCollection.add(nextLine);   // 解析網(wǎng)頁的全部內(nèi)容,添加到集合中
                nextLine = br.readLine();      // 讀取信息,解析網(wǎng)頁
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return urlCollection;
    }

}

解析結(jié)果:

到此這篇關(guān)于利用Java實(shí)現(xiàn)解析網(wǎng)頁中的內(nèi)容的文章就介紹到這了,更多相關(guān)Java解析網(wǎng)頁內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解密Spring?Boot深入理解條件裝配與條件注解

    解密Spring?Boot深入理解條件裝配與條件注解

    條件注解是一種特殊的注解,用于標(biāo)記在配置類、組件類或方法上,它們根據(jù)某些條件的結(jié)果來決定是否應(yīng)用相應(yīng)的配置或組件,這篇文章主要介紹了解密Spring?Boot深入理解條件裝配與條件注解,需要的朋友可以參考下
    2024-06-06
  • Java資源緩存 之 LruCache

    Java資源緩存 之 LruCache

    LruCache (此類在android-support-v4的包中提供) 這個(gè)類非常適合用來緩存圖片,它的主要算法原理是把最近使用的對象用強(qiáng)引用存儲(chǔ)在 LinkedHashMap 中,并且把最近最少使用的對象在緩存值達(dá)到預(yù)設(shè)定值之前從內(nèi)存中移除。
    2016-08-08
  • Spring Boot整合SSE實(shí)時(shí)通信的問題小結(jié)

    Spring Boot整合SSE實(shí)時(shí)通信的問題小結(jié)

    本文介紹了服務(wù)器發(fā)送事件(Server-Sent Events,SSE)技術(shù),其主要特點(diǎn)包括單向數(shù)據(jù)流、自動(dòng)重連、自定義事件類型等,SSE適用于實(shí)時(shí)更新場景,如新聞推送、評論系統(tǒng)等,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Springboot攔截器如何獲取@RequestBody參數(shù)

    Springboot攔截器如何獲取@RequestBody參數(shù)

    這篇文章主要介紹了Springboot攔截器如何獲取@RequestBody參數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java實(shí)現(xiàn)通過時(shí)間獲取8位驗(yàn)證碼

    Java實(shí)現(xiàn)通過時(shí)間獲取8位驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了Java如何通過時(shí)間獲取8位驗(yàn)證碼(每兩個(gè)小時(shí)生成一個(gè)),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Java如何將二維數(shù)組轉(zhuǎn)化為一維數(shù)組

    Java如何將二維數(shù)組轉(zhuǎn)化為一維數(shù)組

    這篇文章主要介紹了Java如何將二維數(shù)組轉(zhuǎn)化為一維數(shù)組,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java 程序員容易犯的10個(gè)SQL錯(cuò)誤

    Java 程序員容易犯的10個(gè)SQL錯(cuò)誤

    本文介紹了Java 程序員容易犯的10個(gè)SQL錯(cuò)誤。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • 淺談Java double 相乘的結(jié)果偏差小問題

    淺談Java double 相乘的結(jié)果偏差小問題

    下面小編就為大家?guī)硪黄獪\談Java double 相乘的結(jié)果偏差小問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot時(shí)間格式化的方法小結(jié)

    SpringBoot時(shí)間格式化的方法小結(jié)

    SpringBoot中的時(shí)間格式化通常指的是將Java中的日期時(shí)間類型轉(zhuǎn)換為指定格式的字符串,或者將字符串類型的時(shí)間解析為Java中的日期時(shí)間類型,本文小編將給大家詳細(xì)總結(jié)了SpringBoot時(shí)間格式化的方法,剛興趣的小伙伴跟著小編一起來看看吧
    2023-10-10
  • java反射之通過反射了解集合泛型的本質(zhì)(詳解)

    java反射之通過反射了解集合泛型的本質(zhì)(詳解)

    下面小編就為大家?guī)硪黄猨ava反射之通過反射了解集合泛型的本質(zhì)(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

南投县| 任丘市| 临洮县| 红河县| 石狮市| 伊金霍洛旗| 琼结县| 清远市| 房山区| 苏尼特右旗| 小金县| 琼中| 扬州市| 闽侯县| 砚山县| 绍兴市| 高雄县| 都匀市| 天柱县| 郯城县| 罗源县| 大新县| 通江县| 通道| 安庆市| 金山区| 峨眉山市| 伊川县| 沾益县| 万载县| 云龙县| 图们市| 汕头市| 涞水县| 霍林郭勒市| 贡嘎县| 呼图壁县| 楚雄市| 琼海市| 池州市| 深州市|