我的编程空间,编程开发者的网络收藏夹
学习永远不晚

利用Java实现解析网页中的内容

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

利用Java实现解析网页中的内容

一、题目描述

题目实现:做一个解析指定网址的网页内容小应用。

二、解题思路

创建一个类:InternetContentFrame,继承JFrame窗体类。

定义一个getURLCollection()方法:用于解析网页内容

使用URLConnection类的getInputStream()方法 获取网页资源的输入流对象。

三、代码详解

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;

public class InternetContentFrame extends JFrame {

    private JTextArea ta_content;
    private JTextField tf_address;
    
    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();
                }
            }
        });
    }

    
    public InternetContentFrame() {
        super();
        setTitle("解析网页中的内容");
        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("输入网址:");
        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();// 获得输入的网址
                Collection urlCollection = getURLCollection(address);// 调用方法,获得网页内容的集合对象
                Iterator it = urlCollection.iterator();  // 获得集合的迭代器对象
                while(it.hasNext()){
                    ta_content.append((String)it.next()+"\n");       // 在文本域中显示解析的内容
                }
            }
        });
        button.setText("解析网页");
        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>(); // 创建集合对象
        try{
            url = new URL(urlString);               // 创建URL对象
            conn = url.openConnection();            // 获得连接对象
            conn.connect();                         // 打开到url引用资源的通信链接
            InputStream is = conn.getInputStream(); // 获取流对象
            InputStreamReader in = new InputStreamReader(is,"UTF-8"); // 转换为字符流
            BufferedReader br = new BufferedReader(in); // 创建缓冲流对象
            String nextLine = br.readLine();            // 读取信息,解析网页
            while (nextLine !=null){
                urlCollection.add(nextLine);   // 解析网页的全部内容,添加到集合中
                nextLine = br.readLine();      // 读取信息,解析网页
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return urlCollection;
    }

}

解析结果:

到此这篇关于利用Java实现解析网页中的内容的文章就介绍到这了,更多相关Java解析网页内容内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

利用Java实现解析网页中的内容

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用Java实现解析网页中的内容

这篇文章主要为大家详细介绍了如何利用Java语言做一个解析指定网址的网页内容小应用,文中的实现步骤讲解详细,感兴趣的可以尝试下
2022-11-13

java 读取网页内容的实例详解

java 读取网页内容的实例详解import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java
2023-05-31

Android利用AsyncTask异步类实现网页内容放大缩小

本文实例为大家分享了AsyncTask异步类实现网页内容放大缩小的详细代码,供大家参考,具体内容如下 WebActivity.java:package com.supermario.filemanager; import java.io.F
2022-06-06

Java使用Jsoup解析html网页的实现步骤

本篇文章详细介绍了Java使用Jsoup解析HTML网页的实现步骤,包括添加依赖项、获取HTML文档、解析元素、提取文本和属性、处理HTML片段、遍历和操作HTML以及保存修改后的HTML。通过遵循这些步骤,开发人员可以轻松地从HTML网页中提取和处理数据。
Java使用Jsoup解析html网页的实现步骤
2024-04-02

TXT文件的内容如何利用Java实现读取

本篇文章为大家展示了TXT文件的内容如何利用Java实现读取,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file = n
2023-05-31

Python使用BeautifulSoup实现解析网页

在这篇文章中,我们将介绍如何使用Python编写一个简单的网络爬虫,以获取并解析网页内容。我们将使用BeautifulSoup库,它是一个非常强大的库,用于解析和操作HTML和XML文档。让我们开始吧
2023-05-19

Java读取网页内容并下载图片的实例

Java读取网页内容并下载图片的实例 很多人在第一次了解数据采集的时候,可能无从下手,尤其是作为一个新手,更是感觉很是茫然,所以,在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目的,就是希望
2023-05-31

网页内容页面制作的实用建议有什么

这篇文章给大家介绍网页内容页面制作的实用建议有什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。内容   1、让读者有理由逗留。要把网页作得趣味盎然,引人入胜。但首要的是要让它有用处。这样做的一个很简单的办法是提供相互
2023-06-08

C#使用CefSharp实现内嵌网页详解

这篇文章主要介绍了C#WPF里怎么使用CefSharp嵌入一个网页,并给出一个简单示例演示C#和网页(JS)的交互实现,感兴趣的小伙伴可以了解一下
2023-05-14

Python实现周期性抓取网页内容的方法

本文实例讲述了Python实现周期性抓取网页内容的方法。分享给大家供大家参考,具体如下: 1.使用sched模块可以周期性地执行指定函数 2.在周期性执行指定函数中抓取指定网页,并解析出想要的网页内容,代码中是六维论坛的在线人数 论坛在线人
2022-06-04

利用java怎么实现一个网页爬虫功能

利用java怎么实现一个网页爬虫功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。爬虫实现原理网络爬虫基本技术处理网络爬虫是数据采集的一种方法,实际项目开发中,通过爬虫做数
2023-05-31

利用Java怎么获取文本框中的内容

利用Java怎么获取文本框中的内容?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下:import java.io.*;import javax.swing.*;imp
2023-05-31

Java内存分析利器MAT的使用详解

本篇内容主要讲解“Java内存分析利器MAT的使用详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java内存分析利器MAT的使用详解”吧!dump文件包含的内容:1,全部的对象:类,域,原生
2023-06-17

如何使用思科路由器实现网页内容过滤的目的

  思科(Cisco)路由器是一个集成多业务路由器,福利综合服务网络路由器,以及获得回报的网络路由器,具备用于连接不同网络设备的综合服务的多种功能。今天小编要给大家分享的教程是:如何使用思科路由器实现网页内容过滤的目的。  当今社会,过滤一些网络内容已经不仅仅是企业的可选择的操作了,然而是已经成为了法律一定的以及企业为
如何使用思科路由器实现网页内容过滤的目的
2024-04-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录