用Swing写个scrapy爬虫图形界面 Ⅱ

来源:互联网 发布:部落冲突骷髅药水数据 编辑:程序博客网 时间:2024/06/10 23:34

因为eclipse上没有matisse form,所以不好再次修改我上次写的图形界面,所以呢,下了个Myeclipse,使用matisse form重新写了下此爬虫的GUI。

主要代码 :

/* * scs.java * * Created on __DATE__, __TIME__ */package cd.ccx;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.io.IOException;import java.net.UnknownHostException;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.awt.TextComponent;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.Mongo;import com.mongodb.MongoException;/** * * @author  __USER__ */public class scs extends javax.swing.JFrame {    public StringBuffer Download_link = new StringBuffer();    /** Creates new form scs */    public scs() {        initComponents();    }    //GEN-BEGIN:initComponents    // <editor-fold defaultstate="collapsed" desc="Generated Code">    private void initComponents() {        button1 = new java.awt.Button();        label1 = new java.awt.Label();        button2 = new java.awt.Button();        button3 = new java.awt.Button();        textArea1 = new java.awt.TextArea();        label2 = new java.awt.Label();        textField1 = new java.awt.TextField();        button4 = new java.awt.Button();        label3 = new java.awt.Label();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        button1.setLabel("\u5f00\u59cb\u722c\u866b :");        button1.addMouseListener(new MouseAdapter() {            @Override            public void mouseClicked(MouseEvent arg0) {                   String command_start="cmd /k start cmd.bat";                //E:\\scrapy---测试用2\\GitHub\\ scrapy crawl github";                Runtime   r=Runtime.getRuntime();                try {                    Process   ps=r.exec(command_start);                } catch (IOException e) {                    // TODO 自动生成的 catch 块                    e.printStackTrace();                }           }         });        label1.setText("Scrapy crawl github");        button2.setLabel("\u7ed3\u675f\u722c\u866b :");        button2.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {            try {                Runtime.getRuntime().exec("TaskKill /IM cmd.exe");            } catch (IOException e1) {                // TODO 自动生成的 catch 块                e1.printStackTrace();            }             }        });        button3.setLabel("\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6\u4fe1\u606f :");        button3.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                button3ActionPerformed(evt);            }        });        label2.setText("\u8f93\u5165\u4f60\u60f3\u4e0b\u8f7d\u7684\u9879\u76ee\uff08\u7528\u6237/\u9879\u76ee\u540d\uff09 :");        textField1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                //textField1.setText("gh");            }        });        button4.setLabel("\u4e0b\u8f7d!...");        //final String tf=textField1.getText();        /*button4.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String tf=textField1.getText();            }            });*/        button4.addMouseListener(new MouseAdapter(){            @Override            public void mouseClicked(MouseEvent arg0) {                   String command1="cmd /k start python download.py ";                String tf=textField1.getText();                //getName()就行  getText()就不行  wocwoc                //String command2="xx";                //final String tf=textField1.getText();                //String tf="phpenterprise/bootstrap-lean";//textField1.getText();                String command2="https://github.com/"+tf+"/archive/master.zip";                String command=command1+command2;                //String command="cmd /k start "+command2;//command1+command2;                Runtime   r=Runtime.getRuntime();                try {                    Process   px=r.exec(command);                } catch (IOException e) {                    // TODO 自动生成的 catch 块                    e.printStackTrace();                }           }        });        label3.setText("Stop crawling");        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(                getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(layout                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                .addGroup(                        layout.createSequentialGroup()                                .addGroup(                                        layout.createParallelGroup(                                                javax.swing.GroupLayout.Alignment.LEADING)                                                .addGroup(                                                        layout.createSequentialGroup()                                                                .addGap(26, 26,                                                                        26)                                                                .addGroup(                                                                        layout.createParallelGroup(                                                                                javax.swing.GroupLayout.Alignment.LEADING)                                                                                .addGroup(                                                                                        layout.createSequentialGroup()                                                                                                .addGroup(                                                                                                        layout.createParallelGroup(                                                                                                                javax.swing.GroupLayout.Alignment.TRAILING,                                                                                                                false)                                                                                                                .addComponent(                                                                                                                        button3,                                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                                        Short.MAX_VALUE)                                                                                                                .addComponent(                                                                                                                        button1,                                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                                        Short.MAX_VALUE))                                                                                                .addGap(20,                                                                                                        20,                                                                                                        20)                                                                                                .addComponent(                                                                                                        label1,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                .addGap(79,                                                                                                        79,                                                                                                        79)                                                                                                .addComponent(                                                                                                        button2,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                .addGap(37,                                                                                                        37,                                                                                                        37)                                                                                                .addComponent(                                                                                                        label3,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE))                                                                                .addGroup(                                                                                        layout.createSequentialGroup()                                                                                                .addComponent(                                                                                                        label2,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                .addGap(25,                                                                                                        25,                                                                                                        25)                                                                                                .addComponent(                                                                                                        textField1,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        163,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                .addGap(32,                                                                                                        32,                                                                                                        32)                                                                                                .addComponent(                                                                                                        button4,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                        javax.swing.GroupLayout.PREFERRED_SIZE))))                                                .addGroup(                                                        layout.createSequentialGroup()                                                                .addGap(74, 74,                                                                        74)                                                                .addComponent(                                                                        textArea1,                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                        521,                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))                                .addContainerGap(37, Short.MAX_VALUE)));        layout.setVerticalGroup(layout                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                .addGroup(                        layout.createSequentialGroup()                                .addGap(21, 21, 21)                                .addGroup(                                        layout.createParallelGroup(                                                javax.swing.GroupLayout.Alignment.TRAILING)                                                .addComponent(                                                        button2,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                .addComponent(                                                        label1,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                .addComponent(                                                        button1,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                .addComponent(                                                        label3,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE))                                .addGroup(                                        layout.createParallelGroup(                                                javax.swing.GroupLayout.Alignment.LEADING)                                                .addGroup(                                                        layout.createSequentialGroup()                                                                .addGap(29, 29,                                                                        29)                                                                .addComponent(                                                                        button3,                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                                .addGap(42, 42,                                                                        42))                                                .addGroup(                                                        layout.createSequentialGroup()                                                                .addGap(56, 56,                                                                        56)                                                                .addComponent(                                                                        textArea1,                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                                        212,                                                                        Short.MAX_VALUE)                                                                .addPreferredGap(                                                                        javax.swing.LayoutStyle.ComponentPlacement.RELATED)))                                .addGroup(                                        layout.createParallelGroup(                                                javax.swing.GroupLayout.Alignment.TRAILING)                                                .addComponent(                                                        label2,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                .addComponent(                                                        textField1,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE)                                                .addComponent(                                                        button4,                                                        javax.swing.GroupLayout.PREFERRED_SIZE,                                                        javax.swing.GroupLayout.DEFAULT_SIZE,                                                        javax.swing.GroupLayout.PREFERRED_SIZE))                                .addGap(41, 41, 41)));        pack();    }// </editor-fold>    //GEN-END:initComponents    private void textField1ActionPerformed(java.awt.event.ActionEvent evt) {        // TODO add your handling code here:        //textField1.setText("gh");    }    private void button4ActionPerformed(java.awt.event.ActionEvent evt) {        // TODO add your handling code here:        //String tf=textField1.getText();//xiaokuan        //String a[] = tf.split(",");        //String ta=textArea1.getText();//dakuan        /*String s = textField1.getText();        String a[] = s.split(",");        String xx = "{ [username] : BellaMarquez [popular_repos] : openfaqs [popular_repos_star]: 0 [the download_link]: https://github.com/BellaMarquez/openfaqs/archive/master.zip[ popular_repos_info]: An Open Source FAQ Board  }{ [username] : Gerst20051 [popular_repos] : HnS-Desktop [popular_repos_star]: 5 [the download_link]: https://github.com/Gerst20051/HnS-Desktop/archive/master.zip[ popular_repos_info]: Homenet Spaces OS. A jQuery web desktop }";        for (int i = 0; i < a.length; i++) {            // Pattern p = Pattern.compile(a[i]);            //Matcher m = p.matcher(xx);            String a1[] = a[i].split(":");            Pattern p = Pattern.compile("https://github.com/" + a1[0] + "/"                    + a1[1] + "/archive/master.zip");            Matcher m = p.matcher(xx);            while (m.find()) {                String mg = m.group(0);                Download_link.append(mg);                // if(mg.indexOf(a[i])){}                //System.out.println(mg);            }        }*/    }    private void button3ActionPerformed(java.awt.event.ActionEvent evt) {        // TODO add your handling code here:        Mongo m = null;        try {            m = new Mongo("localhost", 27017);        } catch (UnknownHostException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (MongoException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        DB db = m.getDB("github");        DBCollection dbCol = db.getCollection("github38_info");        DBCursor x = dbCol.find();        while (x.hasNext()) {            BasicDBObject bdbObj = (BasicDBObject) x.next();            if (bdbObj != null) {                String xxxx = "{ [用户] : " + bdbObj.getString("username")                        + " [最热门项目]: " + bdbObj.getString("popular_repos")                        + " [项目stars]: "                        + bdbObj.getString("popular_repos_star")                        + " [项目下载链接]: "                        + bdbObj.getString("popular_repos_download")                        + " [项目信息]: " + bdbObj.getString("popular_repos_info")                        + " }" + "\n";                //textArea_1.append("{ [username] : "+bdbObj.getString("username")+" [popular_repos] : "+bdbObj.getString("popular_repos")+" [popular_repos_star]: "+bdbObj.getString("popular_repos_star")+" [the download_link]: "+bdbObj.getString("popular_repos_download")+"[ popular_repos_info]: "+bdbObj.getString("popular_repos_info")+" }");                  if ((bdbObj.getString("popular_repos") != "None"))                //此判断句没用                {                    textArea1.append(xxxx);                    textArea1.append("\n");                }            }        }    }    private void button1ActionPerformed(java.awt.event.ActionEvent evt) {        // TODO add your handling code here:    }    /**     * @param args the command line arguments     */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new scs().setVisible(true);            }        });    }    //GEN-BEGIN:variables    // Variables declaration - do not modify    private java.awt.Button button1;    private java.awt.Button button2;    private java.awt.Button button3;    private java.awt.Button button4;    private java.awt.Label label1;    private java.awt.Label label2;    private java.awt.Label label3;    private java.awt.TextArea textArea1;    private java.awt.TextField textField1;    // End of variables declaration//GEN-END:variables}

引用的库依旧是 mongo-java-driver-2.65。

比起之前的GUI,这次增加了一个下载栏。

这里写图片描述

使用的话 我贴个视频链接:

Scrapy爬虫图形界面

0 0
原创粉丝点击