可以使用jspsmartupload组件来完成下载功能。

解决方案 »

  1.   

    使用HtmlParser包试一下!!老外写的!
      

  2.   

    jspsmartupload是服务器端组件,不太符合要求哦
    楼主要求的事主动下载
    你可以使用URL类
      

  3.   

    搂主你要的是这个吧package httpget;import java.awt.*;
    import java.util.*;
    import javax.swing.*;
    import java.io.*;
    import com.heaton.bot.*;/**
     * Example program from Chapter 4
     * Programming Spiders, Bots and Aggregators in Java
     * Copyright 2001 by Jeff Heaton
     *
     *
     * This program accepts a URL as input and then scans all images
     * from that one page. These images are saved to the specified
     * directory.
     *
     * @author Jeff Heaton
     * @version 1.0
     */
    public class GetImage extends javax.swing.JFrame {  /**
       * The constructor.
       */
      public GetImage()
      {
        //{{INIT_CONTROLS
        setTitle("Download Images");
        getContentPane().setLayout(null);
        setSize(405,305);
        setVisible(false);
        JLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
        JLabel1.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
        JLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        JLabel1.setText("Download images from(one page only):");
        getContentPane().add(JLabel1);
        JLabel1.setBounds(12,12,384,24);
        JLabel2.setText("URL:");
        getContentPane().add(JLabel2);
        JLabel2.setBounds(12,36,36,24);
        getContentPane().add(_url);
        _url.setBounds(48,36,348,24);
        JLabel3.setText("Select local path to download images to:");
        getContentPane().add(JLabel3);
        JLabel3.setBounds(12,72,384,24);
        getContentPane().add(_save);
        _save.setBounds(12,96,384,24);
        JScrollPane1.setOpaque(true);
        getContentPane().add(JScrollPane1);
        JScrollPane1.setBounds(12,168,384,132);
        JScrollPane1.getViewport().add(_log);
        _log.setBounds(0,0,381,129);
        _go.setText("GO!");
        getContentPane().add(_go);
        _go.setBounds(84,132,216,24);
        _go.setActionCommand("jbutton");
        //}}    //{{INIT_MENUS
        //}}    //{{REGISTER_LISTENERS
        SymAction lSymAction = new SymAction();
        _go.addActionListener(lSymAction);
        //}}
        setLocation(32,32);
      }  /**
       * Added by Visual Cafe.
       *
       * @param b
       */
      public void setVisible(boolean b)
      {
        if ( b )
          setLocation(50, 50);
        super.setVisible(b);
      }  /**
       * Program entry point.
       *
       * @param args
       */
      static public void main(String args[])
      {
        (new GetImage()).setVisible(true);
      }  /**
       * Added by Visual Cafe.
       */
      public void addNotify()
      {
        // Record the size of the window prior to calling parents addNotify.
        Dimension size = getSize();    super.addNotify();    if ( frameSizeAdjusted )
          return;
        frameSizeAdjusted = true;    // Adjust size of frame according to the insets and menu bar
        Insets insets = getInsets();
        javax.swing.JMenuBar menuBar = getRootPane().getJMenuBar();
        int menuBarHeight = 0;
        if ( menuBar != null )
          menuBarHeight = menuBar.getPreferredSize().height;
        setSize(insets.left +
                insets.right +
                size.width,
                insets.top +
                insets.bottom +
                size.height + menuBarHeight);
      }  // Used by addNotify
      boolean frameSizeAdjusted = false;  //{{DECLARE_CONTROLS
      javax.swing.JLabel JLabel1 = new javax.swing.JLabel();
      javax.swing.JLabel JLabel2 = new javax.swing.JLabel();  /**
       * The URL to be scanned for images.
       */
      javax.swing.JTextField _url = new javax.swing.JTextField();
      javax.swing.JLabel JLabel3 = new javax.swing.JLabel();  /**
       * The directory that these images are to be saved in.
       */
      javax.swing.JTextField _save = new javax.swing.JTextField();
      javax.swing.JScrollPane JScrollPane1 = new javax.swing.JScrollPane();  /**
       * Progress display.
       */
      javax.swing.JList _log = new javax.swing.JList();  /**
       * Button to be pressed to start the scan.
       */
      javax.swing.JButton _go = new javax.swing.JButton();
      //}}  //{{DECLARE_MENUS
      //}}
      class SymAction implements java.awt.event.ActionListener {
        public void actionPerformed(java.awt.event.ActionEvent event)
        {
          Object object = event.getSource();
          if ( object == _go )
            Go_actionPerformed(event);
        }
      }  /**
       * Called for each image. The name(URL) of each image
       * is passed to this method so it can be retrieved and
       * saved.
       *
       * @param name The complete URL to an image to save.
       */
      protected void processURL(String name)
      {
        try {
          if ( _save.getText().length()>0 ) {
            int i = name.lastIndexOf('/');
            if ( i!=-1 ) {
              FileOutputStream fso
              = new FileOutputStream(
                                    new File(_save.getText(),name.substring(i)) );
              HTTPSocket http = new HTTPSocket();
              http.send(name,null);
              fso.write(http.getBody().getBytes("8859_1") );
              fso.close();
            }
          }
        } catch ( Exception e ) {
          JOptionPane.showMessageDialog(this,
                                        e,
                                        "Error",
                                        JOptionPane.OK_CANCEL_OPTION,
                                        null );
        }
      }  /**
       * This is where most of the action takes place. This
       * method is called when the GO! button is pressed.
       *
       * @param event The event
       */
      void Go_actionPerformed(java.awt.event.ActionEvent event)
      {
        try {
          // open the connection and get the page.
          HTTPSocket http = new HTTPSocket();
          HTMLPage page = new HTMLPage(http);
          page.open(_url.getText(),null);      // look at the images.
          Vector vec = page.getImages();
          if ( vec.size()>0 ) {
            // copy the images to an array for display
            String array[] = new String[vec.size()];
            vec.copyInto(array);
            _log.setListData( array );
            // loop through and process each image
            for ( int i=0;i<vec.size();i++ )
              processURL((String)vec.elementAt(i));
          }
        } catch ( Exception e ) {
          String s[] = new String[1];
          s[0] = "Error: " + e;
          _log.setListData( s );
        }
      }
    }