利用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;
/**
 * Description:
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre>
 * 修改记录:
 * 修改后版本	        修改人		修改日期			修改内容
 * 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("解析网页中的内容");
        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解析网页内容内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现网页验证码功能

    本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下 Servlet: package cn.bdqn.servlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.

  • Java获取网页数据步骤方法详解

    在很多行业当中,我们需要对行业进行分析,就需要对这个行业的数据进行分类,汇总,及时分析行业的数据,对于公司未来的发展,有很好的参照和横向对比.面前通过网络进行数据获取是一个很有效而且快捷的方式. 首先我们来简单的介绍一下,利用java对网页数据进行抓取的一些步骤,有不足的地方,还望指正,哈哈.屁话不多说了. 其实一般分为以下步骤: 1:通过HttpClient请求到达某网页的url访问地址(特别需要注意的是请求方式) 2:获取网页源码 3:查看源码是否有我们需要提取的数据 4:对源码进行拆解,一

  • java通过Jsoup爬取网页过程详解

    这篇文章主要介绍了java通过Jsoup爬取网页过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,导入依赖 <!--java爬虫--> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.3</version> </depe

  • java实现网页解析示例

    只需将网址粘贴在第九行括号内即可 复制代码 代码如下: package com.meession.test; import java.io.DataInputStream;import java.net.URL; public class Internet { public static void main(String args[]){  URL myURL;  DataInputStream myURLContent;  try{   myURL=new URL("http://www.jb

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

    目录 一.题目描述 二.解题思路 三.代码详解 一.题目描述 题目实现:做一个解析指定网址的网页内容小应用. 二.解题思路 创建一个类:InternetContentFrame,继承JFrame窗体类. 定义一个getURLCollection()方法:用于解析网页内容 使用URLConnection类的getInputStream()方法 获取网页资源的输入流对象. 三.代码详解 InternetContentFrame package com.xiaoxuzhu; import java.a

  • 利用Java读取Word表格中文本和图片的方法实例

    目录 1. 程序环境准备 Jar导入步骤及方法: 方法1:手动导入. 方法2:Maven仓库导入. 2. Java代码 3. 文本.图片读取效果 总结 本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片.下面是具体实现的步骤和方法. 1. 程序环境准备 代码编译工具:IntelliJ IDEA Jdk版本:1.8.0 测试文档:Word .docx 2013 Jar包:free spire.doc.jar 3.9.0 用于测试的Word文档如下: Jar导入步骤及方法:

  • 利用Java实现在PDF中添加工具提示

    目录 导入jar包 添加工具提示ToolTip 本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示.添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容. 导入jar包 本次程序中使用的是 Free Spire.PDF for Java,具体导入jar文件的方法参考如下内容. 两种方法可导入jar到程序: 方法1. 通过Maven仓库下载导入.在pom.xml配置: <repositories> <repository> <id>com.e-ice

  • 利用Java实现更改Word中的页面大小和页面方向

    目录 程序环境 更改Word中的页面大小和页面方向 完整代码 效果图 新建的 Word 文档,默认纸张为 A4 纸,大小为 21 厘米 × 29.7 厘米,没特殊要求的文档用 A4 纸即可,但有时文档中的内容比较宽,需要用比 A4 纸更宽的纸张,例如制作一些宽的表格,就需要选择宽的纸张:另外,如果要制作一些法律类.信封类.信纸类等的文档,需要选择相应的纸张.那么如何更改Word中的页面大小和页面方向呢?今天我就将为大家介绍一种高效便捷的方法,通过Java应用程序,以编程方式更改Word中的页面大

  • Java正则提取中括号中的内容操作示例

    本文实例讲述了Java正则提取中括号中的内容操作.分享给大家供大家参考,具体如下: 曾经在工作中遇到一个问题,就是需要提取字符串中每一个中括号里的内容,在网上搜了一下,发现用正则表达式可以提取中括号中的内容,具体实现如下: import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ExtractMes

  • 利用java读取web项目中json文件为map集合方法示例

    前言 本文主要介绍了关于java读取web项目中json文件为map集合的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实例介绍 假设当前项目web目录(/resource/test.json)下有一json文件如下: [ { "path": "content_111", "title": "文章1", "imgUrl": "../../../libs/img/ppt

  • Java 批量删除html中注释内容的方法

    其实删除html文本中的注释有很多方法,这里就自己随便写了一个处理方法,权当笔记,有需要的同学可以参考. html文本的注释有几个特点: 1. 成对出现,有开始就一定有结束. 2. 注释标签没有嵌套,注释开始标签(以下称为 <!--)下一个一定是其对应的结束标签(以下称为 -->). 3. 一行中可能有多个注释标签对儿. 4. 注释也可以换行. 大致有以下几种情况: 复制代码 代码如下: <html>  <!--This is a head-->  <head&g

  • 用asp自动解析网页中的图片地址

    一,取得原页中的图片的地址. <%function PicStr(str) Set objRegExp = New Regexp '设置配置对象 objRegExp.IgnoreCase = True '忽略大小写 objRegExp.Global = True '设置为全文搜索 objRegExp.Pattern = "<IMG.+?>" '为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<IMG>标签,然后再取出里面的图片地址后面的geti

  • 详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片

    利用Java抓取网页上的所有图片: 用两个正则表达式: 1.匹配html中img标签的正则:<img.*src=(.*?)[^>]*?> 2.匹配img标签中得src中http路径的正则:http:\"?(.*?)(\"|>|\\s+) 实现: package org.swinglife.main; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream;

  • java抓取网页或文件中的邮箱号码

    本文实例为大家分享了java抓取邮箱号码的具体代码,供大家参考,具体内容如下 java抓取文件中邮箱号码的具体代码 package reg; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; impo

随机推荐