找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3841|回复: 1

【神器】资源热度探测器

[复制链接]
发表于 2014-4-1 14:48:10 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
此工具用于探测给定数据组的热度,也就是多少人查询过,多少人问过,有多少资源指向该词组
该工具支持3种模式查询热度:
1.将词组分行存放在文件中
2.按照某一目录下面遍历其所有文件名进行查询
3.手动单个添加词

QQ图片20140401144727.jpg QQ图片20140401144731.jpg

HotSearch.jar (302.93 KB, 下载次数: 17)


  1. package hotword;

  2. import java.awt.event.MouseAdapter;


  3. public class hotword extends JFrame
  4. {
  5.         /**
  6.          *
  7.          */
  8.         private static final long serialVersionUID = 1L;
  9.         private ArrayList<String> words=new ArrayList<String>();
  10.         private JTextField specWord=null;
  11.         private JTable table=null;
  12.         private JButton btnFromTxt=null;
  13.         private JButton btnFromDir=null;
  14.         private JButton btnFromSpec=null;
  15.         private int index=0;
  16.         private int threadnum=20;
  17.         
  18.         public hotword()
  19.         {
  20.                 super("lichao890427的热词搜索引擎");
  21.                 setTitle("lichao890427的热词搜索引擎");
  22.                 getContentPane().setLayout(null);
  23.                
  24.                 table = new JTable();
  25.                 table.setModel(new DefaultTableModel(
  26.                         new Object[][] {
  27.                         },
  28.                         new String[] {
  29.                                 "\u5E8F\u53F7", "\u6587\u4EF6\u540D", "\u767E\u5EA6\u641C\u7D22\u70ED\u5EA6", "\u767E\u5EA6\u77E5\u9053\u641C\u7D22\u70ED\u5EA6"
  30.                         }
  31.                 ) {
  32.                         Class[] columnTypes = new Class[] {
  33.                                 Long.class, String.class, Long.class, Long.class
  34.                         };
  35.                         public Class getColumnClass(int columnIndex) {
  36.                                 return columnTypes[columnIndex];
  37.                         }
  38.                 });
  39.                 table.getColumnModel().getColumn(0).setResizable(false);
  40.                 table.getColumnModel().getColumn(1).setPreferredWidth(334);
  41.                 table.getColumnModel().getColumn(2).setPreferredWidth(103);
  42.                 table.getColumnModel().getColumn(3).setPreferredWidth(112);
  43.                 table.setAutoCreateRowSorter(true);
  44.                
  45.                 JScrollPane scrollPane = new JScrollPane(table);
  46.                 scrollPane.setBounds(0, 42, 584, 720);
  47.                 getContentPane().add(scrollPane);
  48.                
  49.                 btnFromTxt = new JButton("\u4ECEtxt\u6587\u4EF6\u5217\u8868\u52A0\u5165");
  50.                 btnFromTxt.addMouseListener(new MouseAdapter()
  51.                 {
  52.                         @Override
  53.                         public void mouseClicked(MouseEvent e)
  54.                         {
  55.                                 btnFromTxt.setVisible(false);
  56.                                 btnFromDir.setVisible(false);
  57.                                 btnFromSpec.setVisible(false);
  58.                                 JFileChooser fileChooser=new JFileChooser();
  59.                                 fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
  60.                                 int ret=fileChooser.showOpenDialog(fileChooser);
  61.                                 if(ret == JFileChooser.APPROVE_OPTION)
  62.                                 {
  63.                                         readString(fileChooser.getSelectedFile().getAbsolutePath());
  64.                                 }
  65.                                 Search();
  66.                                 btnFromTxt.setVisible(true);
  67.                                 btnFromDir.setVisible(true);
  68.                                 btnFromSpec.setVisible(true);
  69.                                 index=words.size();
  70.                         }
  71.                 });

  72.                 btnFromTxt.setBounds(0, 0, 135, 23);
  73.                 getContentPane().add(btnFromTxt);
  74.                
  75.                 btnFromDir = new JButton("\u4ECE\u78C1\u76D8\u76EE\u5F55\u52A0\u5165");
  76.                 btnFromDir.addMouseListener(new MouseAdapter()
  77.                 {
  78.                         @Override
  79.                         public void mouseClicked(MouseEvent e)
  80.                         {
  81.                                 JFileChooser fileChooser=new JFileChooser();
  82.                                 fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  83.                                 int ret=fileChooser.showOpenDialog(fileChooser);
  84.                                 if(ret == JFileChooser.APPROVE_OPTION)
  85.                                 {
  86.                                         btnFromTxt.setVisible(false);
  87.                                         btnFromDir.setVisible(false);
  88.                                         btnFromSpec.setVisible(false);
  89.                                         getFiles(fileChooser.getSelectedFile().getAbsolutePath());
  90.                                         Search();
  91.                                         btnFromTxt.setVisible(true);
  92.                                         btnFromDir.setVisible(true);
  93.                                         btnFromSpec.setVisible(true);
  94.                                         index=words.size();
  95.                                 }
  96.                         }
  97.                 });
  98.                 btnFromDir.setBounds(134, 0, 124, 23);
  99.                 getContentPane().add(btnFromDir);
  100.                
  101.                 btnFromSpec = new JButton("\u6307\u5B9A\u641C\u7D22\u8BCD\u52A0\u5165");
  102.                 btnFromSpec.addMouseListener(new MouseAdapter()
  103.                 {
  104.                         @Override
  105.                         public void mouseClicked(MouseEvent e)
  106.                         {
  107.                                 btnFromTxt.setVisible(false);
  108.                                 btnFromDir.setVisible(false);
  109.                                 btnFromSpec.setVisible(false);
  110.                                 if(specWord.getText().length() > 4)
  111.                                 {
  112.                                         String temp1=nameClip(specWord.getText());
  113.                                         if(temp1.length()>4)
  114.                                                 words.add(temp1);
  115.                                 }
  116.                                 Search();
  117.                                 btnFromTxt.setVisible(true);
  118.                                 btnFromDir.setVisible(true);
  119.                                 btnFromSpec.setVisible(true);
  120.                                 index=words.size();
  121.                         }
  122.                 });
  123.                 btnFromSpec.setBounds(0, 19, 135, 23);
  124.                 getContentPane().add(btnFromSpec);
  125.                
  126.                 specWord = new JTextField();
  127.                 specWord.setBounds(134, 20, 450, 21);
  128.                 getContentPane().add(specWord);
  129.                 specWord.setColumns(10);
  130.                
  131.                 JButton Clear = new JButton("\u6E05\u7A7A\u5217\u8868");
  132.                 Clear.addMouseListener(new MouseAdapter()
  133.                 {
  134.                         @Override
  135.                         public void mouseClicked(MouseEvent e)
  136.                         {
  137.                                 words.clear();
  138.                                 clearTable();
  139.                                 index=0;
  140.                         }
  141.                 });
  142.                 Clear.setBounds(484, 0, 100, 23);
  143.                 getContentPane().add(Clear);
  144.                
  145.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  146.                 setSize(600,800);
  147.                 setVisible(true);
  148.         }
  149.         
  150.         private void readString(String filename)
  151.         {
  152.                 try
  153.                 {
  154.                         BufferedReader reader=new BufferedReader(new FileReader(filename));
  155.                         String line=null;
  156.                         while((line=reader.readLine()) != null)
  157.                         {
  158.                                 String temp=nameClip(line);
  159.                                 if(temp.length() > 4)
  160.                                         words.add(temp);
  161.                         }
  162.                         reader.close();
  163.                 }
  164.                 catch (Exception e)
  165.                 {
  166.                         e.printStackTrace();
  167.                 }
  168.         }
  169.         
  170.         private void getFiles(String path)
  171.         {
  172.                 File[] files=new File(path).listFiles();
  173.                 for(File file:files)
  174.                 {
  175.                         if(file.isDirectory())
  176.                         {
  177.                                 getFiles(file.getAbsolutePath());
  178.                         }
  179.                         else if(file.isFile())
  180.                         {
  181.                                 String temp=nameClip(file.getName());
  182.                                 if(temp.length() > 4)
  183.                                         words.add(nameClip(temp));
  184.                         }
  185.                 }
  186.         }
  187.         
  188.         private String nameClip(String obj)
  189.         {
  190.                 int index=obj.lastIndexOf('.');
  191.                 String temp=obj;
  192.                 if(index != -1)
  193.                         temp= obj.substring(0, index);
  194.                 temp=temp.replaceAll("[()\\.:]"," ").replace("—"," ").replace(":"," ");
  195.                 return temp;
  196.         }
  197.         
  198.         private void Search()
  199.         {
  200.                 DefaultTableModel tableModel=(DefaultTableModel)table.getModel();
  201.                 int num=words.size()/threadnum;
  202.                 for(int i=0;i<threadnum;i++)
  203.                 {
  204.                         new myThread(num*i,num*(i+1),tableModel).start();
  205.                 }
  206.                 new myThread(num*threadnum,words.size(),tableModel).start();
  207.         }
  208.         
  209.         private class myThread extends Thread
  210.         {
  211.                 private int begin=0;
  212.                 private int end=0;
  213.                 private DefaultTableModel model=null;
  214.                
  215.                 public myThread(int begin,int end,DefaultTableModel model)
  216.                 {
  217.                         this.begin=begin;
  218.                         this.end=end;
  219.                         this.model=model;
  220.                 }
  221.                
  222.                 @Override
  223.                 public void run()
  224.                 {
  225.                         // TODO Auto-generated method stub
  226.                         try
  227.                         {
  228.                                 for(int i=begin;i<end;i++)
  229.                                 {
  230.                                         Object[] arr=new Object[4];
  231.                                         String temp = words.get(i);
  232.                                         String temp1;
  233.                                         arr[0]=i;
  234.                                         arr[1]=words.get(i);
  235.                                         temp1=getFromBaidu(temp);
  236.                                         arr[2]=(!temp1.equals(""))?Integer.parseInt(temp1):0;
  237.                                         temp1=getFromBaiduZhidao(temp);
  238.                                         arr[3]=(!temp1.equals(""))?Integer.parseInt(temp1):0;
  239.                                         model.addRow(arr);
  240.                                 }
  241.                         }
  242.                         catch(Exception e)
  243.                         {
  244.                                 e.printStackTrace();
  245.                         }
  246.                 }
  247.         }
  248.         
  249.         private String getFromBaidu(String search)
  250.         {
  251.                 try
  252.                 {
  253.                      Document doc=Jsoup.connect("http://www.baidu.com/s?q1=&q2="+search+"&q3=&q4=&rn=10&lm=0&ct=0&ft=&q5=&q6=").timeout(0).get();
  254.                      Elements items=doc.select(".nums");
  255.                      return items.text().replaceAll("[^0123456789,]+","").replace(",","");
  256.                 }
  257.                 catch(Exception e)
  258.                 {
  259.                         e.printStackTrace();
  260.                         return null;
  261.                 }
  262.         }
  263.         
  264.         private String getFromBaiduZhidao(String search)
  265.         {
  266.                 try
  267.                 {
  268.                      Document doc=Jsoup.connect("http://zhidao.baidu.com/search?ct=0&pn=0&tn=ikaslist&rn=10&word="+search).timeout(0).get();
  269.                      Elements items=doc.select(".pickerTitle");
  270.                      return items.text().replaceAll("[^0123456789,]+","").replace(",","");
  271.                 }
  272.                 catch(Exception e)
  273.                 {
  274.                         e.printStackTrace();
  275.                         return null;
  276.                 }
  277.         }
  278.         
  279.         private void clearTable()
  280.         {
  281.                 if(table != null)
  282.                 {
  283.                         table.setModel(new DefaultTableModel(new Object[][] {},new String[]
  284.                                         {
  285.                                                 "\u6587\u4EF6\u540D", "\u767E\u5EA6\u641C\u7D22\u70ED\u5EA6","\u767E\u5EA6\u77E5\u9053\u641C\u7D22\u70ED\u5EA6"
  286.                                         }
  287.                                 ));
  288.                 }
  289.         }
  290.         
  291.         public static void main(String[] args)
  292.         {
  293.                 new hotword();
  294.         }
  295. }
复制代码




回复

使用道具 举报

发表于 2014-4-1 14:58:03 | 显示全部楼层
{:soso_e163:}
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-22 01:08 , Processed in 0.038138 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表