⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dyngetsource.java

📁 本实例介绍如何通过给定的url解析url,并获得url的信息及如何在java中获取网页源代码
💻 JAVA
字号:
package dyngetsource;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.MalformedURLException;
import java.net.*;
import java.io.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class DynGetSource
    extends JFrame
    implements Runnable {
  JPanel contentPane;
  JTextField jTextField1 = new JTextField();
  JButton jButton1 = new JButton();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTextArea jTextArea1 = new JTextArea();
  URL url = null;

  //Construct the frame
  public DynGetSource() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    jTextField1.setText("");
    jTextField1.setBounds(new Rectangle(16, 14, 172, 22));
    jTextField1.addKeyListener(new DynGetSource_jTextField1_keyAdapter(this));
    contentPane.setLayout(null);
    this.setSize(new Dimension(320, 254));
    this.setTitle("获取网页代码");
    jButton1.setBounds(new Rectangle(202, 14, 102, 22));
    jButton1.setText("获得网页代码");
    jButton1.addActionListener(new DynGetSource_jButton1_actionAdapter(this));
    jScrollPane1.setBounds(new Rectangle(16, 56, 288, 156));
    contentPane.add(jButton1, null);
    contentPane.add(jScrollPane1, null);
    jScrollPane1.getViewport().add(jTextArea1, null);
    contentPane.add(jTextField1, null);
  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  public void getSource() {
    jTextArea1.setText("");
    try {
      url = new URL(jTextField1.getText()); //获得URL
      try {
        int i;
        StringBuffer strBuf = new StringBuffer();
        URLConnection urlConn = url.openConnection();
        InputStream inStr = new BufferedInputStream(urlConn.getInputStream());
        Reader r = new InputStreamReader(inStr);
        while ( (i = r.read()) != -1) {
          strBuf.append( (char) i); //当读取的源代码没有结束时,将读入的字符加入到strBuf中
        }
        jTextArea1.append(strBuf.toString()); //将strBuf缓冲区的字符串加入到jTextArea1中,并显示
      }
      catch (IOException error) {}
    }
    catch (MalformedURLException err) {}
  }

  void jButton1_actionPerformed(ActionEvent e) {
    getSource();

  }

  void jTextField1_keyPressed(KeyEvent e) {
    if (e.getKeyChar() == KeyEvent.VK_ENTER) {
      getSource();
    }
  }

  public void run() {
    /**@todo Implement this java.lang.Runnable method*/
    while (true) {
      try {
        getSource();
        Thread.sleep(5000);
      }
      catch (InterruptedException e) {}
    }
  }
}

class DynGetSource_jButton1_actionAdapter
    implements java.awt.event.ActionListener {
  DynGetSource adaptee;

  DynGetSource_jButton1_actionAdapter(DynGetSource adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

class DynGetSource_jTextField1_keyAdapter
    extends java.awt.event.KeyAdapter {
  DynGetSource adaptee;

  DynGetSource_jTextField1_keyAdapter(DynGetSource adaptee) {
    this.adaptee = adaptee;
  }

  public void keyPressed(KeyEvent e) {
    adaptee.jTextField1_keyPressed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -