JavaURL网络爬虫+敏感词匹配+GUI

1  题目要求

  1. 编写界面,输入一个网址,能够爬取该网址上所有的HTML源代码。
  2. 对网址中的文本进行提取。
  3. 建立敏感词库,用文本文件保存。
  4. 将该网址所对应的文本中的敏感词提取并高亮显示。
  5. 编写文本文件,可以存入多个网址;程序可爬取这些网址中的文本内容,将敏感词记录存入另一个文件,格式自定。
  6. 编写一个主界面,整合上述功能。

 

2  设计思路

  1. 采用JavaURL类连接网页网页。
  2. 爬取html代码:使用URLConection配合BufferedReader逐行读取html源代码。
  3. 提取网页文本:使用Java正则表达式匹配html源代码,过滤其中的标签等信息。
  4. 高亮显示敏感词:获取文本框中的Highlighter进行高亮显示,匹配到敏感词则进行高亮显示
  5. 爬取多个网址:分别爬取每个网址,统计每个网址中的敏感词数据,最后进行数据汇总,并将数据都写入文本中。

 

3  实现过程

3.1  设计思想

1) 使用多线程,提高并发率,爬取单个网址时开启一个线程,爬取多个网址时开启一个线程。

2) 使用JavaURL连接网址获取html代码,并添加进度条提示用户,提高用户体验。

3)设计正则表达式,将网页源代码中的标签以及图案乱码信息进行过滤。

4)匹配敏感词,每次匹配时更新匹配条件。

 

代码如下:

package spider;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter.DefaultHighlightPainter;
import javax.swing.text.Highlighter;

public class SpiderFrame extends JFrame implements ActionListener{
	
	private JPanel jPanel=new JPanel();
	private JPanel jpl1=new JPanel();
	private JPanel jpl2=new JPanel();
	private JPanel jpl3=new JPanel();
	private JPanel jpl4=new JPanel();
	private JPanel jpl5=new JPanel();
	private JPanel jpl6=new JPanel();
	private JPanel jpl7=new JP
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值