├── .gitignore ├── .settings ├── org.eclipse.m2e.core.prefs ├── org.eclipse.core.resources.prefs └── org.eclipse.jdt.core.prefs ├── src ├── main │ └── java │ │ ├── config.properties │ │ └── org │ │ └── hymer │ │ └── sensitivewords │ │ ├── TreeGenerator.java │ │ ├── ext │ │ ├── PropertiesUtil.java │ │ ├── DBWordProvider.java │ │ ├── WordLibListener.java │ │ └── FinderUtil.java │ │ ├── TextAnalysis.java │ │ └── Finder.java └── test │ └── java │ └── org │ └── hymer │ └── sensitivewords │ ├── FinderUtilTest.java │ └── FinderTest.java ├── .project ├── .classpath └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/test/java=UTF-8 4 | encoding/=UTF-8 5 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.6 6 | -------------------------------------------------------------------------------- /src/main/java/config.properties: -------------------------------------------------------------------------------- 1 | #MySQL 2 | jdbcDriverClassName=com.mysql.jdbc.Driver 3 | jdbcUrl=jdbc:mysql://192.168.92.140:3306/tcl_messagepush?useUnicode=true&characterEncoding=UTF-8 4 | jdbcUsername=root 5 | jdbcPassword=root 6 | 7 | #ActiveMQ 8 | url=failover:(tcp://192.168.92.140:61616?wireFormat.maxInactivityDuration=0) 9 | topic=sensitiveword.refresh 10 | -------------------------------------------------------------------------------- /src/test/java/org/hymer/sensitivewords/FinderUtilTest.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords; 2 | 3 | import org.hymer.sensitivewords.ext.FinderUtil; 4 | import org.junit.Test; 5 | 6 | 7 | public class FinderUtilTest { 8 | 9 | @Test 10 | public void testFind() { 11 | FinderUtil.initialize(); 12 | System.out.println(FinderUtil.find("阿宾正在电视里看av!")); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | sensitivewords 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/TreeGenerator.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | /** 7 | * 8 | * 敏感字树生成器 9 | * 10 | * @author hymer 11 | */ 12 | @SuppressWarnings({ "rawtypes", "unchecked" }) 13 | public class TreeGenerator { 14 | 15 | /** 16 | * 将指定的词分成字构建到一棵树中。 17 | * 18 | * @param tree 19 | * 字树 20 | * @param sensitiveWord 21 | * 敏感词词 22 | * @return 23 | */ 24 | public static void addWord2Tree(Map tree, String sensitiveWord) { 25 | addWord2Tree(tree, sensitiveWord, 0); 26 | } 27 | 28 | private static Map addWord2Tree(Map tree, 29 | String word, int index) { 30 | if (index == word.length()) { 31 | tree.put(Finder.TREE_END_KEY, generateWordMap(word)); 32 | return tree; 33 | } 34 | String next = word.substring(index, index + 1); 35 | Map subTree = tree.get(next); 36 | if (subTree == null) { 37 | subTree = new HashMap(); 38 | } 39 | tree.put(next, addWord2Tree(subTree, word, index + 1)); 40 | return tree; 41 | } 42 | 43 | private static Map generateWordMap(String word) { 44 | Map wordMap = new HashMap(); 45 | wordMap.put(Finder.WORD_VALUE, word); 46 | wordMap.put(Finder.WORD_LENGTH, word.length()); 47 | return wordMap; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/ext/PropertiesUtil.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords.ext; 2 | 3 | import java.io.File; 4 | import java.io.FileOutputStream; 5 | import java.io.InputStream; 6 | import java.io.OutputStream; 7 | import java.net.URI; 8 | import java.util.Properties; 9 | 10 | /** 11 | * 资源文件解析工具 12 | * 13 | * @author hymer 14 | * 15 | */ 16 | public class PropertiesUtil { 17 | private Properties props; 18 | private URI uri; 19 | 20 | public PropertiesUtil() { 21 | readProperties("config.properties"); 22 | } 23 | 24 | public PropertiesUtil(String fileName) { 25 | readProperties(fileName); 26 | } 27 | 28 | private void readProperties(String fileName) { 29 | try { 30 | props = new Properties(); 31 | InputStream fis = this.getClass().getClassLoader() 32 | .getResourceAsStream(fileName); 33 | props.load(fis); 34 | uri = this.getClass().getClassLoader().getResource(fileName) 35 | .toURI(); 36 | } catch (Exception e) { 37 | e.printStackTrace(); 38 | } 39 | } 40 | 41 | /** 42 | * 获取某个属性 43 | */ 44 | public String getProperty(String key) { 45 | return props.getProperty(key); 46 | } 47 | 48 | /** 49 | * 在控制台上打印出所有属性,调试时用。 50 | */ 51 | public void printProperties() { 52 | props.list(System.out); 53 | } 54 | 55 | /** 56 | * 写入properties信息 57 | */ 58 | public void writeProperties(String key, String value) { 59 | try { 60 | OutputStream fos = new FileOutputStream(new File(uri)); 61 | props.setProperty(key, value); 62 | // 将此 Properties 表中的属性列表(键和元素对)写入输出流 63 | props.store(fos, "#Update key:" + key); 64 | } catch (Exception e) { 65 | e.printStackTrace(); 66 | } 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/ext/DBWordProvider.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords.ext; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | import java.sql.ResultSet; 6 | import java.sql.SQLException; 7 | import java.sql.Statement; 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | /** 12 | * 初始化从MySQL中导入敏感词 13 | * 14 | * @author hymer 15 | * 16 | */ 17 | public class DBWordProvider { 18 | 19 | private String className; 20 | private String url; 21 | private String user; 22 | private String password; 23 | 24 | public DBWordProvider(String className, String url, String user, 25 | String password) { 26 | super(); 27 | this.className = className; 28 | this.url = url; 29 | this.user = user; 30 | this.password = password; 31 | } 32 | 33 | public String[] loadWords() { 34 | List list = null; 35 | Connection conn = null; 36 | Statement stmt = null; 37 | ResultSet rs = null; 38 | try { 39 | Class.forName(className); 40 | conn = DriverManager.getConnection(url, user, password); 41 | String sql = "SELECT word FROM tb_sensitivewords"; 42 | stmt = conn.createStatement(); 43 | rs = stmt.executeQuery(sql); 44 | list = new ArrayList(); 45 | while (rs.next()) { 46 | list.add(rs.getString(1)); 47 | } 48 | return list.toArray(new String[list.size()]); 49 | } catch (ClassNotFoundException e) { 50 | e.printStackTrace(); 51 | } catch (SQLException e) { 52 | e.printStackTrace(); 53 | } finally { 54 | try { 55 | if (rs != null) { 56 | rs.close(); 57 | } 58 | if (stmt != null) { 59 | stmt.close(); 60 | } 61 | if (conn != null) { 62 | conn.close(); 63 | } 64 | } catch (SQLException e) { 65 | e.printStackTrace(); 66 | } 67 | } 68 | return null; 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/ext/WordLibListener.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords.ext; 2 | 3 | import javax.jms.Connection; 4 | import javax.jms.JMSException; 5 | import javax.jms.Message; 6 | import javax.jms.MessageConsumer; 7 | import javax.jms.MessageListener; 8 | import javax.jms.Session; 9 | import javax.jms.TextMessage; 10 | import javax.jms.Topic; 11 | 12 | import org.apache.activemq.ActiveMQConnectionFactory; 13 | import org.hymer.sensitivewords.Finder; 14 | 15 | 16 | /** 17 | * 敏感词库变化监听类 18 | * 19 | * @author hymer 20 | * 21 | */ 22 | public class WordLibListener implements MessageListener, Runnable { 23 | 24 | private String url = null; 25 | private String topicName = null; 26 | private Connection connection = null; 27 | private Session session = null; 28 | private Topic topic = null; 29 | private MessageConsumer consumer = null; 30 | 31 | public WordLibListener(String url, String topic) { 32 | this.url = url; 33 | this.topicName = topic; 34 | } 35 | 36 | @Override 37 | public void run() { 38 | try { 39 | ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory( 40 | url); 41 | connection = factory.createConnection(); 42 | session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 43 | topic = session.createTopic(topicName); 44 | consumer = session.createConsumer(topic); 45 | consumer.setMessageListener(this); 46 | connection.start(); 47 | } catch (Exception e) { 48 | e.printStackTrace(); 49 | } 50 | } 51 | 52 | /** 53 | *
54 | 	 * 协议: 
55 | 	 * 		首位字符: +(新增)、-(移除) 
56 | 	 * 		后面为词组,以,间隔:word1,word2
57 | 	 * 
58 | 	 * example:+word1,word2,word3
59 | 	 * 
60 | */ 61 | @Override 62 | public void onMessage(Message message) { 63 | try { 64 | if (message instanceof TextMessage) { 65 | String msg = ((TextMessage) message).getText(); 66 | if (msg != null && msg.trim().length() > 0) { 67 | msg = msg.trim(); 68 | char flag = msg.charAt(0); 69 | switch (flag) { 70 | case FinderUtil.ADD_FLAG: // 新增 71 | Finder.addSensitiveWords(msg.substring(1)); 72 | break; 73 | 74 | case FinderUtil.REMOVE_FLAG: // 删除 75 | Finder.removeSensitiveWords(msg.substring(1)); 76 | break; 77 | 78 | default: 79 | break; 80 | } 81 | } 82 | } 83 | } catch (JMSException e) { 84 | e.printStackTrace(); 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/ext/FinderUtil.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords.ext; 2 | 3 | import java.util.Set; 4 | 5 | import org.hymer.sensitivewords.Finder; 6 | 7 | 8 | /** 9 | * 敏感词过滤对外提供方法类 10 | * 11 | * @author hymer 12 | * 13 | */ 14 | public class FinderUtil { 15 | 16 | public static final char ADD_FLAG = '+'; // 新增标记 17 | public static final char REMOVE_FLAG = '-'; // 删除标记 18 | 19 | /** 20 | * 初始化敏感词 21 | */ 22 | public static void initialize() { 23 | PropertiesUtil util = new PropertiesUtil(); 24 | String className = util.getProperty("jdbcDriverClassName"); 25 | String url = util.getProperty("jdbcUrl"); 26 | String user = util.getProperty("jdbcUsername"); 27 | String password = util.getProperty("jdbcPassword"); 28 | DBWordProvider p = new DBWordProvider(className, url, user, password); 29 | String[] words = p.loadWords(); 30 | // 初始导入 31 | Finder.addSensitiveWords(words); 32 | String mqurl = util.getProperty("url"); 33 | String topic = util.getProperty("topic"); 34 | // 监听词库变化接收器启动 35 | new Thread(new WordLibListener(mqurl, topic)).start(); 36 | } 37 | 38 | /** 39 | * 40 | * 找出文本中的敏感词 41 | * 42 | * @author hymer 43 | * @param text 44 | * @return 45 | */ 46 | public static Set find(String text) { 47 | return Finder.find(text); 48 | } 49 | 50 | /** 51 | * 替换文本中的敏感词 52 | * 53 | * @param text 54 | * 含敏感词的文本 55 | * @return 56 | */ 57 | public static String replace(String text) { 58 | return Finder.replace(text); 59 | } 60 | 61 | /** 62 | * 替换文本中的敏感词 63 | * 64 | * @param text 65 | * 含敏感词的文本 66 | * @param replacement 67 | * 替换字符 68 | * @return 69 | */ 70 | public static String replace(String text, Character replacement) { 71 | return Finder.replace(text, replacement); 72 | } 73 | 74 | /** 75 | * 76 | * 过滤文本,并标记出敏感词,默认使用HTML中红色font标记 77 | * 78 | * @author hymer 79 | * @param text 80 | * @return 81 | */ 82 | public static String filter(String text) { 83 | return Finder.filter(text); 84 | } 85 | 86 | /** 87 | * 88 | * 过滤文本,并标记出敏感词 89 | * 90 | * @author hymer 91 | * @param text 92 | * @param startTag 93 | * @param endTag 94 | * @return 95 | */ 96 | public static String filter(String text, String startTag, String endTag) { 97 | return Finder.filter(text, startTag, endTag); 98 | } 99 | 100 | } 101 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | com.tcl 6 | sensitivewords 7 | 0.0.1-release 8 | jar 9 | 10 | sensitivewords 11 | http://maven.apache.org 12 | 13 | 14 | UTF-8 15 | 16 | 17 | 18 | 19 | 20 | org.apache.maven.plugins 21 | maven-compiler-plugin 22 | 2.3.2 23 | 24 | 1.6 25 | 1.6 26 | 1.6 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | junit 35 | junit 36 | 4.11 37 | test 38 | 39 | 40 | org.apache.activemq 41 | activemq-all 42 | 5.6.0 43 | 44 | 45 | mysql 46 | mysql-connector-java 47 | 5.1.16 48 | 49 | 50 | 81 | 82 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/TextAnalysis.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords; 2 | 3 | import java.util.LinkedHashSet; 4 | import java.util.Map; 5 | import java.util.Set; 6 | 7 | /** 8 | * 9 | * 文本分析类 10 | * 11 | * @author hymer 12 | */ 13 | @SuppressWarnings({ "unchecked", "rawtypes" }) 14 | public class TextAnalysis { 15 | 16 | /** 17 | * 18 | * 分析文本,返回搜寻到的所有敏感字 19 | * 20 | * @author hymer 21 | * @param tree 22 | * 敏感字树 23 | * @param text 24 | * 待分析的文本 25 | * @return 26 | */ 27 | public Set analysis(Map tree, String text) { 28 | Set words = new LinkedHashSet(); 29 | if (text != null && text.trim().length() > 0) { 30 | analysis(tree, text, words); 31 | } 32 | return words; 33 | } 34 | 35 | /** 36 | * 替换文本中的敏感词 37 | * 38 | * @param tree 39 | * 敏感字树 40 | * @param text 41 | * 待分析的文本 42 | * @param replacement 43 | * 替换字符 44 | * @return 45 | */ 46 | public String replace(Map tree, String text, 47 | Character replacement) { 48 | if (replacement == null) { 49 | replacement = Finder.DEFAULT_REPLACEMENT; 50 | } 51 | if (text != null && text.trim().length() > 0) { 52 | StringBuffer sb = new StringBuffer(""); 53 | replace(tree, text, 0, replacement, sb); 54 | return sb.toString(); 55 | } 56 | return text; 57 | } 58 | 59 | /** 60 | * 61 | * 标记文本中的敏感词 62 | * 63 | * @author hymer 64 | * @param tree 65 | * 敏感字树 66 | * @param text 67 | * 待分析的文本 68 | * @param startTag 69 | * 开始标记 70 | * @param endTag 71 | * 结束标记 72 | * @return 73 | */ 74 | public String mark(Map tree, String text, String startTag, 75 | String endTag) { 76 | if (text != null && text.trim().length() > 0) { 77 | StringBuffer sb = new StringBuffer(""); 78 | mark(tree, text, 0, startTag, endTag, sb); 79 | return sb.toString(); 80 | } 81 | return text; 82 | } 83 | 84 | private void mark(Map tree, String text, int index, 85 | String startTag, String endTag, StringBuffer sb) { 86 | int last = 0; 87 | int textLen = text.length(); 88 | while (index < textLen) { 89 | String tmp = text.substring(index, index + 1); 90 | String nexts = text.substring(index); 91 | String word = ""; 92 | word = findMaxWord(tree, nexts, 0, word); 93 | if (!"".equals(word)) { 94 | int wordLen = word.length(); 95 | if (index >= last) { 96 | sb.append(startTag + word + endTag); 97 | } else { 98 | if (last < index + wordLen) { 99 | sb.insert(sb.length() - endTag.length(), 100 | text.substring(last, index + wordLen)); 101 | } 102 | } 103 | last = index + wordLen; 104 | } else { 105 | if (index >= last) { 106 | sb.append(tmp); 107 | } 108 | } 109 | index++; 110 | } 111 | } 112 | 113 | private String findMaxWord(Map tree, String text, int index, 114 | String word) { 115 | Map subTree = tree.get(text.substring(index, index + 1)); 116 | if (subTree != null) { 117 | Map end = subTree.get(Finder.TREE_END_KEY); 118 | if (end != null) { 119 | String sensitiveWord = (String) end.get(Finder.WORD_VALUE); 120 | if (word.length() < sensitiveWord.length()) { 121 | word = sensitiveWord; 122 | } 123 | } 124 | if ((index + 1) < text.length() 125 | && (end == null || subTree.size() > 1)) { 126 | return findMaxWord(subTree, text, index + 1, word); 127 | } 128 | } 129 | return word; 130 | } 131 | 132 | private void analysis(Map tree, String text, Set words) { 133 | int index = 0; 134 | while (index < text.length()) { 135 | findWord(tree, text, index, words); 136 | index++; 137 | } 138 | } 139 | 140 | private void findWord(Map tree, String text, int index, 141 | Set words) { 142 | Map subTree = tree.get(text.substring(index, index + 1)); 143 | if (subTree != null) { 144 | Map end = subTree.get(Finder.TREE_END_KEY); 145 | if (end != null) { 146 | words.add((String) end.get(Finder.WORD_VALUE)); 147 | } 148 | if ((index + 1) < text.length() 149 | && (end == null || subTree.size() > 1)) { 150 | findWord(subTree, text, index + 1, words); 151 | } 152 | } 153 | } 154 | 155 | private void replace(Map tree, String text, int index, 156 | char replacement, StringBuffer sb) { 157 | int last = 0; 158 | int textLen = text.length(); 159 | while (index < textLen) { 160 | String tmp = text.substring(index, index + 1); 161 | String nexts = text.substring(index); 162 | String word = ""; 163 | word = findMaxWord(tree, nexts, 0, word); 164 | if (!"".equals(word)) { 165 | int replaceLen = 0; 166 | int wordLen = word.length(); 167 | if (index >= last) { 168 | replaceLen = wordLen; 169 | } else { 170 | replaceLen = index + wordLen - last; 171 | } 172 | while (replaceLen > 0) { 173 | sb.append(replacement); 174 | replaceLen--; 175 | } 176 | last = index + wordLen; 177 | } else { 178 | if (index >= last) { 179 | sb.append(tmp); 180 | } 181 | } 182 | index++; 183 | } 184 | } 185 | 186 | } 187 | -------------------------------------------------------------------------------- /src/main/java/org/hymer/sensitivewords/Finder.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords; 2 | 3 | import java.util.HashSet; 4 | import java.util.Iterator; 5 | import java.util.Map; 6 | import java.util.Set; 7 | import java.util.concurrent.ConcurrentHashMap; 8 | 9 | /** 10 | * 11 | * 敏感词过滤 12 | * 13 | * @author hymer 14 | */ 15 | @SuppressWarnings({ "rawtypes", "unchecked" }) 16 | public class Finder { 17 | // 敏感词 18 | private static Set WORDS = new HashSet(); 19 | // 由敏感词生成的字树 20 | private static Map TREE = new ConcurrentHashMap(); 21 | // 默认敏感词分割符 22 | public static final String DEFAULT_SEPARATOR = ","; 23 | /* 在树当中标志一个词的结束 */ 24 | public static final String TREE_END_KEY = "^"; 25 | // 敏感词value标记 26 | public static final String WORD_VALUE = "v"; 27 | // 敏感词长度标记 28 | public static final String WORD_LENGTH = "l"; 29 | // 默认替换符 30 | public static final char DEFAULT_REPLACEMENT = '*'; 31 | // 默认起始标记 32 | public static final String DEFAULT_START_TAG = ""; 33 | // 默认结束标记 34 | public static final String DEFAULT_END_TAG = ""; 35 | 36 | public Finder(String[] words) { 37 | addSensitiveWords(words); 38 | } 39 | 40 | /** 41 | * 删除所有敏感词 42 | */ 43 | public static void clearSensitiveWords() { 44 | WORDS.clear(); 45 | TREE.clear(); 46 | } 47 | 48 | /** 49 | * 50 | * 添加敏感词 51 | * 52 | * @author hymer 53 | * @param words 54 | */ 55 | public static void addSensitiveWords(String[] words) { 56 | if (words == null || words.length == 0) { 57 | return; 58 | } 59 | check(words); 60 | addWords(words); 61 | } 62 | 63 | /** 64 | * 65 | * 添加敏感词 66 | * 67 | * @author hymer 68 | * @param words 69 | * @param separator 70 | */ 71 | public static void addSensitiveWords(String words, String separator) { 72 | if (words != null && !"".equals(words.trim())) { 73 | check(words); 74 | String[] sensitiveWords = words.split(separator); 75 | addWords(sensitiveWords); 76 | } 77 | } 78 | 79 | /** 80 | * 81 | * 添加敏感词,默认使用,分割 82 | * 83 | * @author hymer 84 | * @param words 85 | */ 86 | public static void addSensitiveWords(String words) { 87 | check(words); 88 | addSensitiveWords(words, DEFAULT_SEPARATOR); 89 | } 90 | 91 | /** 92 | * 删除敏感词 93 | * 94 | * @param words 95 | */ 96 | public static void removeSensitiveWords(String words) { 97 | check(words); 98 | removeSensitiveWords(words, DEFAULT_SEPARATOR); 99 | } 100 | 101 | /** 102 | * 删除敏感词 103 | * 104 | * @param words 105 | */ 106 | public static void removeSensitiveWords(String words, String separator) { 107 | if (words != null && !"".equals(words.trim())) { 108 | check(words); 109 | String[] sensitiveWords = words.split(separator); 110 | removeWords(sensitiveWords); 111 | } 112 | } 113 | 114 | /** 115 | * 删除敏感词 116 | * 117 | * @param words 118 | */ 119 | public static void removeSensitiveWords(String[] words) { 120 | if (words == null || words.length == 0) { 121 | return; 122 | } 123 | check(words); 124 | removeWords(words); 125 | } 126 | 127 | /** 128 | * 129 | * 找出文本中的敏感词 130 | * 131 | * @author hymer 132 | * @param text 133 | * @return 134 | */ 135 | public static Set find(String text) { 136 | return new TextAnalysis().analysis(TREE, text); 137 | } 138 | 139 | /** 140 | * 替换文本中的敏感词 141 | * 142 | * @param text 143 | * 含敏感词的文本 144 | * @return 145 | */ 146 | public static String replace(String text) { 147 | return new TextAnalysis().replace(TREE, text, DEFAULT_REPLACEMENT); 148 | } 149 | 150 | /** 151 | * 替换文本中的敏感词 152 | * 153 | * @param text 154 | * 含敏感词的文本 155 | * @param replacement 156 | * 替换字符 157 | * @return 158 | */ 159 | public static String replace(String text, Character replacement) { 160 | return new TextAnalysis().replace(TREE, text, replacement); 161 | } 162 | 163 | /** 164 | * 165 | * 过滤文本,并标记出敏感词,默认使用HTML中红色font标记 166 | * 167 | * @author hymer 168 | * @param text 169 | * @return 170 | */ 171 | public static String filter(String text) { 172 | return new TextAnalysis().mark(TREE, text, DEFAULT_START_TAG, DEFAULT_END_TAG); 173 | } 174 | 175 | /** 176 | * 177 | * 过滤文本,并标记出敏感词 178 | * 179 | * @author hymer 180 | * @param text 181 | * @param startTag 182 | * @param endTag 183 | * @return 184 | */ 185 | public static String filter(String text, String startTag, String endTag) { 186 | return new TextAnalysis().mark(TREE, text, startTag, endTag); 187 | } 188 | 189 | private static void check(String... words) { 190 | for (String word : words) { 191 | if (word != null && word.contains(TREE_END_KEY)) { 192 | throw new RuntimeException("包含非法字符:" + TREE_END_KEY); 193 | } 194 | } 195 | } 196 | 197 | private static void addWords(String... sensitiveWords) { 198 | for (String word : sensitiveWords) { 199 | if (word != null && !word.trim().equals("")) { 200 | word = word.trim(); 201 | int len = word.length(); 202 | if (len > 1024) { 203 | throw new RuntimeException("敏感词太长[最长1024]!"); 204 | } 205 | // 添加该词,如果未重复,则添加到tree 206 | if (WORDS.add(word)) { 207 | TreeGenerator.addWord2Tree(TREE, word); 208 | } 209 | } 210 | } 211 | System.out.println("当前敏感词数量:" + WORDS.size()); 212 | } 213 | 214 | private static void removeWords(String... sensitiveWords) { 215 | for (String word : sensitiveWords) { 216 | if (word != null && !word.trim().equals("")) { 217 | word = word.trim(); 218 | WORDS.remove(word); 219 | } 220 | } 221 | TREE.clear(); 222 | addWords(WORDS.toArray(new String[WORDS.size()])); 223 | } 224 | 225 | @SuppressWarnings("unused") 226 | private static void printTree(Map wordTree, int level) { 227 | if (wordTree == null || wordTree.isEmpty()) { 228 | return; 229 | } 230 | Iterator it = wordTree.keySet().iterator(); 231 | while (it.hasNext()) { 232 | String next = it.next(); 233 | for (int i = 0; i < level; i++) { 234 | System.out.print("-"); 235 | } 236 | System.out.print(next + "\n"); 237 | Object tmp = wordTree.get(next); 238 | if (tmp instanceof Map) { 239 | printTree((Map) tmp, level + 1); 240 | } 241 | } 242 | } 243 | 244 | } 245 | -------------------------------------------------------------------------------- /src/test/java/org/hymer/sensitivewords/FinderTest.java: -------------------------------------------------------------------------------- 1 | package org.hymer.sensitivewords; 2 | 3 | import java.util.Arrays; 4 | import java.util.HashMap; 5 | import java.util.Map; 6 | import java.util.Set; 7 | 8 | import org.hymer.sensitivewords.Finder; 9 | import org.junit.After; 10 | import org.junit.Test; 11 | 12 | 13 | 14 | public class FinderTest { 15 | public static String[] words = null; 16 | public static String text5k = null; 17 | public static String text20w = null; 18 | 19 | @After 20 | public void tearDown() throws Exception { 21 | } 22 | 23 | @Test 24 | public void testFilter() { 25 | Finder.addSensitiveWords(new String[]{"核武器", "武器装备"}); 26 | String s = "核武器装备起来了。"; 27 | String r = Finder.filter(s); 28 | System.out.println(r); 29 | } 30 | 31 | @Test 32 | public void testSub() { 33 | char[] chars = text20w.toCharArray(); 34 | 35 | System.out.println("text10w.length=" + text20w.length()); 36 | System.out.println("chars.length=" + chars.length); 37 | 38 | long begin = System.currentTimeMillis(); 39 | for (int i = 0; i < text20w.length(); i++) { 40 | text20w = text20w.substring(i); 41 | } 42 | long end = System.currentTimeMillis(); 43 | System.out.println("total=" + (end - begin)); 44 | 45 | long begin2 = System.currentTimeMillis(); 46 | for (int i = 0; i < chars.length; i++) { 47 | Arrays.copyOfRange(chars, i, chars.length); 48 | } 49 | long end2 = System.currentTimeMillis(); 50 | System.out.println("total2=" + (end2 - begin2)); 51 | } 52 | 53 | @Test 54 | public void testMap() { 55 | Map strmap = new HashMap(); 56 | for (int i = 0; i < text20w.length(); i++) { 57 | strmap.put(text20w.charAt(i) + "", "value" + i); 58 | } 59 | Map charmap = new HashMap(); 60 | for (int i = 0; i < text20w.length(); i++) { 61 | charmap.put(text20w.charAt(i), "value" + i); 62 | } 63 | 64 | System.out.println("strmap.size=" + strmap.size()); 65 | System.out.println("charmap.size=" + charmap.size()); 66 | 67 | long begin = System.currentTimeMillis(); 68 | for (int i = 0; i < text20w.length(); i++) { 69 | strmap.get(text20w.charAt(i)); 70 | } 71 | long end = System.currentTimeMillis(); 72 | System.out.println("total=" + (end - begin)); 73 | 74 | long begin2 = System.currentTimeMillis(); 75 | for (int i = 0; i < text20w.length(); i++) { 76 | charmap.get(text20w.charAt(i)); 77 | } 78 | long end2 = System.currentTimeMillis(); 79 | System.out.println("total2=" + (end2 - begin2)); 80 | } 81 | 82 | @Test 83 | public void testReplace() { 84 | Finder.addSensitiveWords(new String[] { "好世界", "天下太平", "天下", "平了啊", 85 | "世界啊", ",世" }); 86 | long begin = System.currentTimeMillis(); 87 | String result = Finder.replace("你好,世界。你好世界,天下太平了啊!", '&'); 88 | long end = System.currentTimeMillis(); 89 | System.out.println("total=" + (end - begin)); 90 | System.out.println("result=" + result); 91 | } 92 | 93 | @Test 94 | public void testFilterString() { 95 | Finder.addSensitiveWords(new String[] { "你好", "好世界", "天下太平", "天下", 96 | "平了啊", "世界啊", ",世" }); 97 | long begin = System.currentTimeMillis(); 98 | String result = Finder.filter("你好,世界。你好世界,天下太平了啊!"); 99 | long end = System.currentTimeMillis(); 100 | System.out.println("total=" + (end - begin)); 101 | System.out.println("result=" + result); 102 | } 103 | 104 | @Test 105 | public void testFind() { 106 | Finder.addSensitiveWords(new String[] { "你好", "好世界", "天下太平", "天下", 107 | "平了啊", "世界啊", ",世", "世事和平" }); 108 | long begin = System.currentTimeMillis(); 109 | 110 | // String text = "你好世"; 111 | // Set result = Finder.find(text); 112 | // String result = Finder.replace(text); 113 | // String result = Finder.filter(text); 114 | for (int i=0; i<10; i++) { 115 | text20w += text20w; 116 | } 117 | Set result = Finder.find(text20w); 118 | long end = System.currentTimeMillis(); 119 | System.out.println("words=" + words.length); 120 | System.out.println("length=" + text20w.length()); 121 | System.out.println("耗时=" + (end - begin) + "ms"); 122 | System.out.println("result=" + result); 123 | } 124 | 125 | @Test 126 | public void testFilterString2() { 127 | long begin = System.currentTimeMillis(); 128 | String result = Finder.replace(text20w); 129 | long end = System.currentTimeMillis(); 130 | System.out.println("words=" + words.length); 131 | System.out.println("length=" + text20w.length()); 132 | System.out.println("耗时=" + (end - begin) + "ms"); 133 | System.out.println("result=" + result); 134 | } 135 | 136 | static { 137 | words = new String[] { "囚徒", "阿扁推翻", "翻身", "阿宾", "阿賓", "挨了一炮", "爱液横流", 138 | "安街逆", "安局办公楼", "安局豪华", "安门事", "安眠藥", "案的准确", "八九民", "八九学", 139 | "八九政治", "把病人整", "把邓小平", "把学生整", "罢工门", "白黄牙签", "败培训", "办本科", 140 | "办理本科", "办理各种", "办理票据", "办理文凭", "办理真实", "办理证书", "办理资格", "办文凭", 141 | "办怔", "办证", "半刺刀", "辦毕业", "辦證", "谤罪获刑", "磅解码器", "磅遥控器", 142 | "宝在甘肃修", "保过答案", "报复执法", "爆发骚", "北省委门", "被打死", "被指抄袭", "被中共", 143 | "本公司担", "本无码", "毕业證", "变牌绝", "辩词与梦", "冰毒", "冰火毒", "冰火佳", 144 | "冰火九重", "冰火漫", "冰淫传", "冰在火上", "波推龙", "博彩娱", "博会暂停", "博园区伪", 145 | "不查都", "不查全", "不思四化", "布卖淫女", "部忙组阁", "部是这样", "才知道只生", "财众科技", 146 | "采花堂", "踩踏事", "苍山兰", "苍蝇水", "藏春阁", "藏獨", "操了嫂", "操嫂子", "策没有不", 147 | "插屁屁", "察象蚂", "拆迁灭", "车牌隐", "成人电", "成人卡通", "成人聊", "成人片", "成人视", 148 | "成人图", "成人文", "成人小", "城管灭", "惩公安", "惩贪难", "充气娃", "冲凉死", "抽着大中", 149 | "抽着芙蓉", "出成绩付", "出售发票", "出售军", "穿透仪器", "春水横溢", "纯度白", "纯度黄", 150 | "次通过考", "催眠水", "催情粉", "催情药", "催情藥", "挫仑", "达毕业证", "答案包", 151 | "答案提供", "打标语", "打错门", "打飞机专", "打死经过", "打死人", "打砸办公", "大鸡巴", 152 | "大雞巴", "大纪元", "大揭露", "大奶子", "大批贪官", "大肉棒", "大嘴歌", "代办发票", 153 | "代办各", "代办文", "代办学", "代办制", "代辦", "代表烦", "代開", "代考", "代理发票", 154 | "代理票据", "代您考", "代您考", "代写毕", "代写论", "代孕", "贷办", "贷借款", "贷开", 155 | "戴海静", "当代七整", "当官要精", "当官在于", "党的官", "党后萎", "党前干劲", "刀架保安", 156 | "导的情人", "导叫失", "导人的最", "导人最", "导小商", "到花心", "得财兼", "的同修", 157 | "灯草和", "等级證", "等屁民", "等人老百", "等人是老", "等人手术", "邓爷爷转", "邓玉娇", 158 | "地产之歌", "地下先烈", "地震哥", "帝国之梦", "递纸死", "点数优惠", "电狗", "电话监", 159 | "电鸡", "甸果敢", "蝶舞按", "丁香社", "丁子霖", "顶花心", "东北独立", "东复活", "东京热", 160 | "東京熱", "洞小口紧", "都当警", "都当小姐", "都进中央", "毒蛇钻", "独立台湾", "赌球网", 161 | "短信截", "对日强硬", "多美康", "躲猫猫", "俄羅斯", "恶势力操", "恶势力插", "恩氟烷", 162 | "儿园惨", "儿园砍", "儿园杀", "儿园凶", "二奶大", "发牌绝", "发票出", "发票代", "发票销", 163 | "發票", "法车仑", "法伦功", "法轮", "法轮佛", "法维权", "法一轮", "法院给废", "法正乾", 164 | "反测速雷", "反雷达测", "反屏蔽", "范燕琼", "方迷香", "防电子眼", "防身药水", "房贷给废", 165 | "仿真枪", "仿真证", "诽谤罪", "费私服", "封锁消", "佛同修", "夫妻交换", "福尔马林", 166 | "福娃的預", "福娃頭上", "福香巴", "府包庇", "府集中领", "妇销魂", "附送枪", "复印件生", 167 | "复印件制", "富民穷", "富婆给废", "改号软件", "感扑克", "冈本真", "肛交", "肛门是邻", 168 | "岡本真", "钢针狗", "钢珠枪", "港澳博球", "港馬會", "港鑫華", "高就在政", "高考黑", 169 | "高莺莺", "搞媛交", "告长期", "告洋状", "格证考试", "各类考试", "各类文凭", "跟踪器", 170 | "工程吞得", "工力人", "公安错打", "公安网监", "公开小姐", "攻官小姐", "共狗", "共王储", 171 | "狗粮", "狗屁专家", "鼓动一些", "乖乖粉", "官商勾", "官也不容", "官因发帖", "光学真题", 172 | "跪真相", "滚圆大乳", "国际投注", "国家妓", "国家软弱", "国家吞得", "国库折", "国一九五七", 173 | "國內美", "哈药直销", "海访民", "豪圈钱", "号屏蔽器", "和狗交", "和狗性", "和狗做", 174 | "黑火药的", "红色恐怖", "红外透视", "紅色恐", "胡江内斗", "胡紧套", "胡錦濤", "胡适眼", 175 | "胡耀邦", "湖淫娘", "虎头猎", "华国锋", "华门开", "化学扫盲", "划老公", "还会吹萧", 176 | "还看锦涛", "环球证件", "换妻", "皇冠投注", "黄冰", "浑圆豪乳", "活不起", "火车也疯", 177 | "机定位器", "机号定", "机号卫", "机卡密", "机屏蔽器", "基本靠吼", "绩过后付", "激情电", 178 | "激情短", "激情妹", "激情炮", "级办理", "级答案", "急需嫖", "集体打砸", "集体腐", "挤乳汁", 179 | "擠乳汁", "佳静安定", "家一样饱", "家属被打", "甲虫跳", "甲流了", "奸成瘾", "兼职上门", 180 | "监听器", "监听王", "简易炸", "江胡内斗", "江太上", "江系人", "江贼民", "疆獨", "蒋彦永", 181 | "叫自慰", "揭贪难", "姐包夜", "姐服务", "姐兼职", "姐上门", "金扎金", "金钟气", "津大地震", 182 | "津地震", "进来的罪", "京地震", "京要地震", "经典谎言", "精子射在", "警察被", "警察的幌", 183 | "警察殴打", "警察说保", "警车雷达", "警方包庇", "警用品", "径步枪", "敬请忍", "究生答案", 184 | "九龙论坛", "九评共", "酒象喝汤", "酒像喝汤", "就爱插", "就要色", "举国体", "巨乳", 185 | "据说全民", "绝食声", "军长发威", "军刺", "军品特", "军用手", "开邓选", "开锁工具", "開碼", 186 | "開票", "砍杀幼", "砍伤儿", "康没有不", "康跳楼", "考答案", "考后付款", "考机构", "考考邓", 187 | "考联盟", "考前答", "考前答案", "考前付", "考设备", "考试包过", "考试保", "考试答案", 188 | "考试机构", "考试联盟", "考试枪", "考研考中", "考中答案", "磕彰", "克分析", "克千术", 189 | "克透视", "空和雅典", "孔摄像", "控诉世博", "控制媒", "口手枪", "骷髅死", "快速办", 190 | "矿难不公", "拉登说", "拉开水晶", "来福猎", "拦截器", "狼全部跪", "浪穴", "老虎机", 191 | "雷人女官", "类准确答", "黎阳平", "李洪志", "李咏曰", "理各种证", "理是影帝", "理证件", 192 | "理做帐报", "力骗中央", "力月西", "丽媛离", "利他林", "连发手", "聯繫電", "炼大法", 193 | "两岸才子", "两会代", "两会又三", "聊视频", "聊斋艳", "了件渔袍", "猎好帮手", "猎枪销", 194 | "猎槍", "獵槍", "领土拿", "流血事", "六合彩", "六死", "六四事", "六月联盟", "龙湾事件", 195 | "隆手指", "陆封锁", "陆同修", "氯胺酮", "乱奸", "乱伦类", "乱伦小", "亂倫", "伦理大", 196 | "伦理电影", "伦理毛", "伦理片", "轮功", "轮手枪", "论文代", "罗斯小姐", "裸聊网", "裸舞视", 197 | "落霞缀", "麻古", "麻果配", "麻果丸", "麻将透", "麻醉狗", "麻醉枪", "麻醉槍", "麻醉藥", 198 | "蟆叫专家", "卖地财政", "卖发票", "卖银行卡", "卖自考", "漫步丝", "忙爱国", "猫眼工具", 199 | "毛一鲜", "媒体封锁", "每周一死", "美艳少妇", "妹按摩", "妹上门", "门按摩", "门保健", 200 | "門服務", "氓培训", "蒙汗药", "迷幻型", "迷幻药", "迷幻藥", "迷昏口", "迷昏药", "迷昏藥", 201 | "迷魂香", "迷魂药", "迷魂藥", "迷奸药", "迷情水", "迷情药", "迷藥", "谜奸药", "蜜穴", 202 | "灭绝罪", "民储害", "民九亿商", "民抗议", "明慧网", "铭记印尼", "摩小姐", "母乳家", 203 | "木齐针", "幕没有不", "幕前戲", "内射", "南充针", "嫩穴", "嫩阴", "泥马之歌", "你的西域", 204 | "拟涛哥", "娘两腿之间", "妞上门", "浓精", "怒的志愿", "女被人家搞", "女激情", "女技师", 205 | "女人和狗", "女任职名", "女上门", "女優", "鸥之歌", "拍肩神药", "拍肩型", "牌分析", 206 | "牌技网", "炮的小蜜", "陪考枪", "配有消", "喷尿", "嫖俄罗", "嫖鸡", "平惨案", "平叫到床", 207 | "仆不怕饮", "普通嘌", "期货配", "奇迹的黄", "奇淫散", "骑单车出", "气狗", "气枪", "汽狗", 208 | "汽枪", "氣槍", "铅弹", "钱三字经", "枪出售", "枪的参", "枪的分", "枪的结", "枪的制", 209 | "枪货到", "枪决女犯", "枪决现场", "枪模", "枪手队", "枪手网", "枪销售", "枪械制", "枪子弹", 210 | "强权政府", "强硬发言", "抢其火炬", "切听器", "窃听器", "禽流感了", "勤捞致", "氢弹手", 211 | "清除负面", "清純壆", "情聊天室", "情妹妹", "情视频", "情自拍", "氰化钾", "氰化钠", 212 | "请集会", "请示威", "请愿", "琼花问", "区的雷人", "娶韩国", "全真证", "群奸暴", "群起抗暴", 213 | "群体性事", "绕过封锁", "惹的国", "人权律", "人体艺", "人游行", "人在云上", "人真钱", 214 | "认牌绝", "任于斯国", "柔胸粉", "肉洞", "肉棍", "如厕死", "乳交", "软弱的国", "赛后骚", 215 | "三挫", "三级片", "三秒倒", "三网友", "三唑", "骚妇", "骚浪", "骚穴", "骚嘴", 216 | "扫了爷爷", "色电影", "色妹妹", "色视频", "色小说", "杀指南", "山涉黑", "煽动不明", 217 | "煽动群众", "上门激", "烧公安局", "烧瓶的", "韶关斗", "韶关玩", "韶关旭", "射网枪", 218 | "涉嫌抄袭", "深喉冰", "神七假", "神韵艺术", "生被砍", "生踩踏", "生肖中特", "圣战不息", 219 | "盛行在舞", "尸博", "失身水", "失意药", "狮子旗", "十八等", "十大谎", "十大禁", "十个预言", 220 | "十类人不", "十七大幕", "实毕业证", "实体娃", "实学历文", "士康事件", "式粉推", "视解密", 221 | "是躲猫", "手变牌", "手答案", "手狗", "手机跟", "手机监", "手机窃", "手机追", "手拉鸡", 222 | "手木仓", "手槍", "守所死法", "兽交", "售步枪", "售纯度", "售单管", "售弹簧刀", "售防身", 223 | "售狗子", "售虎头", "售火药", "售假币", "售健卫", "售军用", "售猎枪", "售氯胺", "售麻醉", 224 | "售冒名", "售枪支", "售热武", "售三棱", "售手枪", "售五四", "售信用", "售一元硬", "售子弹", 225 | "售左轮", "书办理", "熟妇", "术牌具", "双管立", "双管平", "水阎王", "丝护士", "丝情侣", 226 | "丝袜保", "丝袜恋", "丝袜美", "丝袜妹", "丝袜网", "丝足按", "司长期有", "司法黑", 227 | "私房写真", "死法分布", "死要见毛", "四博会", "四大扯", "个 四小码", "苏家屯集", "诉讼集团", 228 | "素女心", "速代办", "速取证", "酸羟亚胺", "蹋纳税", "太王四神", "泰兴幼", "泰兴镇中", 229 | "泰州幼", "贪官也辛", "探测狗", "涛共产", "涛一样胡", "特工资", "特码", "特上门", 230 | "体透视镜", "替考", "替人体", "天朝特", "天鹅之旅", "天推广歌", "田罢工", "田田桑", 231 | "田停工", "庭保养", "庭审直播", "通钢总经", "偷電器", "偷肃贪", "偷听器", "偷偷贪", 232 | "头双管", "透视功能", "透视镜", "透视扑", "透视器", "透视眼镜", "透视药", "透视仪", 233 | "秃鹰汽", "突破封锁", "突破网路", "推油按", "脱衣艳", "瓦斯手", "袜按摩", "外透视镜", 234 | "外围赌球", "湾版假", "万能钥匙", "万人骚动", "王立军", "王益案", "网民案", "网民获刑", 235 | "网民诬", "微型摄像", "围攻警", "围攻上海", "维汉员", "维权基", "维权人", "维权谈", 236 | "委坐船", "谓的和谐", "温家堡", "温切斯特", "温影帝", "溫家寶", "瘟加饱", "瘟假饱", 237 | "文凭证", "文强", "纹了毛", "闻被控制", "闻封锁", "瓮安", "我的西域", "我搞台独", "乌蝇水", 238 | "无耻语录", "无码专", "五套功", "五月天", "午夜电", "午夜极", "武警暴", "武警殴", 239 | "武警已增", "务员答案", "务员考试", "雾型迷", "西藏限", "西服进去", "希脏", "习进平", 240 | "习晋平", "席复活", "席临终前", "席指着护", "洗澡死", "喜贪赃", "先烈纷纷", "现大地震", 241 | "现金投注", "线透视镜", "限制言", "陷害案", "陷害罪", "相自首", "香港论坛", "香港马会", 242 | "香港一类", "香港总彩", "硝化甘", "小穴", "校骚乱", "协晃悠", "写两会", "泄漏的内", 243 | "新建户", "新疆叛", "新疆限", "新金瓶", "新唐人", "信访专班", "信接收器", "兴中心幼", 244 | "星上门", "行长王益", "形透视镜", "型手枪", "姓忽悠", "幸运码", "性爱日", "性福情", 245 | "性感少", "性推广歌", "胸主席", "徐玉元", "学骚乱", "学位證", "學生妹", "丫与王益", 246 | "烟感器", "严晓玲", "言被劳教", "言论罪", "盐酸曲", "颜射", "恙虫病", "姚明进去", "要人权", 247 | "要射精了", "要射了", "要泄了", "夜激情", "液体炸", "一小撮别", "遗情书", "蚁力神", 248 | "益关注组", "益受贿", "阴间来电", "陰唇", "陰道", "陰戶", "淫魔舞", "淫情女", "淫肉", 249 | "淫騷妹", "淫兽", "淫兽学", "淫水", "淫穴", "隐形耳", "隐形喷剂", "应子弹", "婴儿命", 250 | "咏妓", "用手枪", "幽谷三", "游精佑", "有奶不一", "右转是政", "幼齿类", "娱乐透视", 251 | "愚民同", "愚民政", "与狗性", "玉蒲团", "育部女官", "冤民大", "鸳鸯洗", "园惨案", 252 | "园发生砍", "园砍杀", "园凶杀", "园血案", "原一九五七", "原装弹", "袁腾飞", "晕倒型", 253 | "韵徐娘", "遭便衣", "遭到警", "遭警察", "遭武警", "择油录", "曾道人", "炸弹教", "炸弹遥控", 254 | "炸广州", "炸立交", "炸药的制", "炸药配", "炸药制", "张春桥", "找枪手", "找援交", 255 | "找政法委副", "赵紫阳", "针刺案", "针刺伤", "针刺事", "针刺死", "侦探设备", "真钱斗地", 256 | "真钱投注 真善忍", "真实文凭", "真实资格", "震惊一个民", "震其国土", "证到付款", "证件办", 257 | "证件集团", "证生成器", "证书办", "证一次性", "政府操", "政论区", "證件", "植物冰", 258 | "殖器护", "指纹考勤", "指纹膜", "指纹套", "至国家高", "志不愿跟", "制服诱", "制手枪", 259 | "制证定金", "制作证件", "中的班禅", "中共黑", "中国不强", "种公务员", "种学历证", "众像羔", 260 | "州惨案", "州大批贪", "州三箭", "宙最高法", "昼将近", "主席忏", "住英国房", "助考", 261 | "助考网", "专业办理", "专业代", "专业代写", "专业助", "转是政府", "赚钱资料", "装弹甲", 262 | "装枪套", "装消音", "着护士的胸", "着涛哥", "姿不对死", "资格證", "资料泄", "梓健特药", 263 | "字牌汽", "自己找枪", "自慰用", "自由圣", "自由亚", "总会美女", "足球玩法", "最牛公安", 264 | "醉钢枪", "醉迷药", "醉乙醚", "尊爵粉", "左转是政", "作弊器", "作各种证", "作硝化甘", 265 | "唑仑", "做爱小", "做原子弹", "做证件", "龟头", "龟公", "龜頭", "龚平", "黄色网站", 266 | "黄色网", "黄色电影", "黄色片", "黄色照片", "黄色激情小电影", "黄色激情", "黄色漫画", 267 | "黄色文学", "黄色影视", "黄色小说", "黄色小电影", "黄色图片", "黄色免费电影", "黄色书刊", 268 | "黄网导航", "黄站", "黄祸", "黄片", "黄海暗杀事件", "黄海暗杀", "黄海事件", "黄小说", 269 | "黃色電影", "黃色小電影", "黃色圖片", "黃海暗殺事件", "麻醉迷魂迷情", "麻醉迷幻極品", 270 | "麻醉迷幻极品", "麻果", "鸦片渣", "鸦片液", "骚穴骚水", "鸡巴", "鸡奸", "鸡吧", "鸡八", 271 | "魔难论", "高樹三姐妹", "高校骚乱", "高校騷亂", "高校群体事件", "高校暴亂", "高校暴乱", 272 | "高树三姐妹", "高效春药", "骚逼小说", "骚逼", "骚货", "骚痒", "骚水", "骚比", "骚屄", 273 | "骚婊", "骚姐姐", "骚姊姊", "骚妹", "骚女", "骆冰淫传", "騷逼", "騷穴", "香港黄大仙", 274 | "香港独立", "香港GHB迷幻水", "香港GHB水", "香功", "风骚侍女", "风骚", "风流教皇", 275 | "风流教师", "颠覆国家政权", "颠覆中国政权", "颠覆中华人民共和国政权", "顶得好深", "韶关事件", 276 | "鞭满", "靠你妈", "靓钕村", "靓穴", "青海无上师", "青楼十二房", "露逼", "露胸图", "露穴", 277 | "露毛", "露拉3D", "露乳图", "露乳", "霍比预言", "電車之狼", "雪山狮子旗", "雪山狮子", 278 | "雞雞", "雞巴", "雞八", "集体做爱", "陰部", "陰蒂", "陰莖", "陰茎", "陰穴", "陰毛", 279 | "陰核", "陰户", "陪裸", "陪睡觉", "降灾民", "阿娇艳照", "阿姨的偷窥", "阴阜", "阴门", 280 | "阴部", "阴道被捅", "阴道图", "阴道", "阴蒂", "阴茎增大", "阴茎", "阴胫", "阴肉", 281 | "阴纯", "阴精狂泻", "阴精", "阴穴", "阴水", "阴毛小穴", "阴毛", "阴核", "阴护", "阴户", 282 | "阴壁", "阴囊", "阴唇", "阴丘", "阴di", "阴dao", "阴chun", "阳精", "阳物", 283 | "阳具", "门徒会", "针刺事件", "金普提上师", "野外激情", "酱猪媳", "邪恶的党", "邪恶江泽民", 284 | "邪恶共产党", "邪恶党徒", "邪党", "邓笑贫", "邓矮子", "邓狗", "邓二世", "避孕膜", "逼穴", 285 | "逼真女下体", "逼痒", "逼毛", "逼样", "逼好痒", "造爱", "造业", "逗肛", "逗乳", 286 | "逃亡艳旅", "退出共产党", "退出共产", "退出党团队", "退出中共", "退党声明", "退党", 287 | "迷魂药激情", "迷魂洞", "迷藥迷魂藥", "迷殲藥", "迷歼药", "迷幻液", "迷奸表妹的小香穴", "迷奸", 288 | "迫害珐工力国际组织", "迫害法轮功", "达赖领奖", "达赖雪山狮子旗", "达米宣教会", "辽阳工潮", 289 | "辣妹艳书辣图屋", "辣妹午夜图书屋", "轮暴致死", "轮攻", "轮工", "轮子功", "轮奸虐杀", 290 | "轮奸抽插", "轮奸", "轮公", "转让冰毒配方", "转法轮", "转法论", "转化论", "车仑大法", 291 | "车仑", "轉法輪", "輪攻", "輪功", "輪公", "踩江", "跳蛋", "乱交", "超淫杂交女", 292 | "走入邪悟者", "赤色杀意", "赤匪", "赤化", "赤党", "贼民", "贱逼", "贱货", "贱比", 293 | "贱人", "贞操带手铐", "贞操", "買春堂", "调情", "谁是胡的接班人", "诺龙", "诺世纪", "诱奸", 294 | "诱人双峰", "话在肉身显现", "评共产党是什么", "论攻", "论功", "论公", "讲法传功", "護士24點", 295 | "警花肉搏强奸党", "警匪一家", "論攻", "論功", "論公", "解体中共", "视频裸聊", "视频脱衣", 296 | "观音法门", "小穴鸡巴", "西藏骚乱", "西藏青年大会", "西藏獨立", "西藏独立", "西藏独", 297 | "西藏流亡政府", "西藏正义", "西藏暴动", "西藏暴乱", "西藏基金会", "西藏国家民主党", "西藏国", 298 | "西藏作家组织", "西藏人民大起义运动", "西藏之页", "西藏之声", "西单民主墙", "裸陪", "裸聊合法", 299 | "裸聊", "裸网", "裸干", "裸女對對碰", "裸女对对碰", "裸体写真", "裙底走光", "被虐", "被插", 300 | "被人干", "行房", "血腥清场", "血溅人民天堂", "蠢猪", "蜜穴被插", "蜜液", "蜜洞", 301 | "蜜汁肉缝", "蜜汁", "蜜壶", "蜜唇", "蛤蟆转世", "虐杀", "虐恋", "虎膽雄心", "藏青会", 302 | "藏独", "藏春閣", "藏字石", "藏妇会", "藏历新年骚乱", "蒙独", "蒙古独", "蒙古牧民联合会", 303 | "蒙古回归", "蒙古之友", "蒋公", "萬人暴动", "菱恝", "菩提法门", "菩提教会", "菩提功", 304 | "菊花蕾", "菊花穴", "菊花洞", "菊穴", "菊爆", "菊暴", "莹莹成人论坛", "莹穴", "荡妇", 305 | "草你妈", "茳民", "茎精", "芳香型智悟气功", "花瓣蜜液", "艳门照", "艳遇编年史", "艳舞", 306 | "艳欲", "艳情电影", "色阅网", "色诱", "色色五月天", "色色", "色空寺", "色界论坛", 307 | "色猫论坛", "色狼网", "色狼網", "色狼俱乐部", "色狼", "色淫", "色欲", "色情電視", 308 | "色情论坛", "色情自拍", "色情网站", "色情网", "色情網站", "色情电视", "色情电影", "色情片", 309 | "色情服务", "色情影视", "色情小電影", "色情小说", "色情小电影", "色情导航", "色情圖片", 310 | "色情图片", "色情六月天", "色情五月天", "色情", "色性社区", "色性", "色屋图片", "色图亚洲", 311 | "色图", "色友", "舔阴", "舔遍", "舔逼", "舔花苞", "舔舐", "舔肛", "舔穴", "舔私处", 312 | "舔批", "舔弄小穴", "舔弄", "舔屁沟", "舔奶", "舔吮", "舔便", "舔下面", "舔xue", 313 | "舌头舔", "舌头添", "臺灣獨立", "臭作", "自由西藏学生运动", "自由西藏", "自由网", 314 | "自由亚洲电台", "自由亚洲", "自由亚州", "自然功", "自焚", "自烧", "自杀指南", "自杀手册", 315 | "自拍干炮", "自慰", "臀洞", "臀沟", "臀孔", "臀丘", "脱衣视频", "脱衣舞", "脱党", 316 | "脫衣舞", "脏独", "脏毒", "胯上套弄屁股", "胯上", "胡锦滔", "胡锦淘", "胡锦涛长子", "胡鍧", 317 | "胡进涛", "胡紧掏", "胡系", "胡的接班人", "胡瘟", "胡温保守派", "胡温", "胡派军委", 318 | "胡派人马", "胡派", "胡江风云", "胡江曾", "胡江关系", "胡江争斗", "胡江", "胡景涛", 319 | "胡中央", "胡下台", "胡j涛", "胡J涛", "背飞凫", "肾源", "肥穴", "肤白胸大", "股股下流", 320 | "肛插", "肛恋", "肛交淫水", "肏这", "肏穴", "肏破", "肏死", "肏我", "肏干", "肏屄", 321 | "肏娘", "肏妹妹", "肏妳", "肏她", "肏入", "肉茎", "肉缝", "肉穴", "肉洞抽插", "肉欲", 322 | "肉棒阴唇", "肉棒舔弄", "肉棒淫水", "肉棒对准穴口", "肉棒", "肉棍淫水", "肉根", "肉屄", 323 | "肉壶", "肉圈", "肉击", "肉具", "肉体交融", "肉丘", "老江", "老毛", "老师穴", 324 | "老师的穴", "老婊子", "老人政治", "群射", "群奸", "美腿寫真", "美腿写真", "美穴", 325 | "美眉图库", "美狐图片网", "美屄", "美少妇的哀羞", "美少女麻雀", "美少女", "美女黄色", 326 | "美女野球拳", "美女视频", "美女視頻", "美女裸体", "美女脱衣", "美女按摩", "美女护陪", 327 | "美女图坊", "美女出售", "美女全套", "美女做愛", "美女人体艺术", "美女上门", "美国维吾尔", 328 | "网络活动颠覆", "网上淫秽色情游戏", "缩阴", "绿坝娘之歌", "绿坝娘", "维多利亚包", "维吾尔信息社", 329 | "维吾尔人权", "绳虐", "统独论坛", "统独", "绝爱故事网", "练功群众", "纪股票市场五卅惨案", 330 | "纪念达赖喇嘛流亡49周年", "约会强暴药", "红血丝", "红色角落", "红潮谎言录", "红潮艳史", 331 | "红朝谎言录", "红智", "红志", "红兽", "維多利亞包", "絲襪寫真", "紧窄肉棒", "素女", "女孩", 332 | "紅智", "紅志", "精液", "粪青", "粗大的玩意", "粗口歌", "粉红小逼", "粉红小b", "粉嫩小洞", 333 | "簧片", "等你插", "第三道路党", "第三党", "第一次破处", "童屹", "窝囊的中国", "窝囊中国", 334 | "突厥斯坦", "空劲功", "空中民主墙", "穴里好痒", "穴里", "穴肉", "穴穴", "穴痒用力", "穴痒", 335 | "穴淫", "穴洞", "穴口舔弄", "穴口", "穴前庭", "秘處", "秘肉", "秘唇", "私密处", 336 | "福娃火车相撞地震", "福娃出事", "禅密功", "禁断少女", "禁忌试玩", "禁忌試玩", "禁室培欲", 337 | "神鬼妓", "神鬼18妓", "神雕外传之郭襄", "神通加持法", "神秘的死刑", "社会主义灭亡", 338 | "硅谷民主促进会", "破迷与正心", "破处", "砝轮", "砝伦", "砝仑", "石戈", "真耶稣教会", 339 | "真念", "真善忍", "真名三退", "看JJ", "百媚图库", "百万极品爽书", "白立朴", "白秀华", 340 | "白梦", "白军", "發輪", "發論", "發淪", "發倫", "癡漢是犯罪", "瘟家鸨", "瘟家宝", 341 | "瘟家", "瘟假鸨", "病业说", "疾病业债说", "疆独藏独", "疆独", "留园网", "男性服务", "男妓", 342 | "男女自慰用品", "男女秘事", "男女公关", "男公关", "男体图片", "电影色情", "电动葫芦", 343 | "电信路藏民", "用力骚穴", "用力抽插挺动", "生孩子没屁眼", "瓮安骚乱", "瓮安暴乱", "瑷液", 344 | "瑞安事件", "珐輪功", "珐工力学", "现在的政府", "现在的共产党", "现在的党", "现世现报", 345 | "王子淫传", "王八蛋", "玉蒲團", "玉蒲团之偷情宝鉴", "玉穴", "玉杵捣花径", "玉女淫情", 346 | "玉女吹箫", "猪聋畸", "猪毛", "猪操", "猪容", "猛男强奸", "猛操", "猛插", "狼友性息", 347 | "狼友俱乐部", "独立台湾会", "独立中文笔会", "独夫民贼", "独夫", "狠肏", "狗逼", "狗日的", 348 | "狗操", "狗屎", "狗娘养的", "狗卵子", "狗b", "狗B", "狅操", "狄玉明", "狂穴", "狂泻", 349 | "狂操", "狂搞", "狂插", "狂干", "犬交", "特务民运", "牛逼", "牛比", "爽电影", "爽片", 350 | "爽死", "爱滋村里的爱", "爱液", "爱上师娘的床", "爆菊", "爆破", "爆乳", "熟女俱乐部", 351 | "熟女之惑", "煞笔", "热比娅", "烂逼", "烂货", "烂比", "点对点裸聊", "炮轰密妃", "炮片", 352 | "炮图", "灵修团体", "灯草和尚", "灭共", "灭中共", "激情黄色", "激情電影", "激情诱惑", 353 | "激情视频", "激情視頻", "激情自拍", "激情聊天", "激情美女", "激情网站", "激情短片", "激情电话", 354 | "激情电影", "激情淫", "激情文學", "激情文学", "激情成人", "激情小電影", "激情小说", 355 | "激情小电影", "激情大片", "激情在线", "激情圖片", "激情图片", "激情图吧", "激情写真", 356 | "激情交友", "激情一刻现场脱", "潮吹", "漠视生命自私到了极点的中共政权", "满床春色", "湿穴", 357 | "温加饱", "温元凯", "温休曾退", "温云松", "温下台", "渗透中共", "清纯少妇", "清海无上师", 358 | "清海师父", "清华帮", "添阴", "添逼", "添空", "添你下面", "淫魔舞会", "淫魔抽送", "淫魔", 359 | "淫靡", "淫阴", "淫间道", "淫道", "淫逼", "淫贴图", "淫蟲", "淫虫", "淫虐", "淫蕩少婦", 360 | "淫蕩孕婦", "淫蕩丗家", "淫蕩", "淫荡少妇之白洁", "淫荡少妇", "淫荡娃娃", "淫荡妹妹", "淫荡妈", 361 | "淫荡套动", "淫荡", "淫色网站", "淫色小说", "淫色", "淫臀", "淫美贴图", "淫笑肉棒", "淫笑", 362 | "淫穴淫水", "淫秽词语", "淫秽电影", "淫秽", "淫男", "淫电影", "淫片", "淫液", "淫浪", 363 | "淫洞", "淫汁", "淫水鸡巴", "淫水胯下", "淫水肉洞", "淫水火棒", "淫水浓精", "淫水操逼", 364 | "淫水挺动", "淫水抽插", "淫水带出", "淫水好爽用力", "淫水好爽", "淫水乱伦", "淫民", "淫母", 365 | "淫欲", "淫棍", "淫术炼金士", "淫書", "淫暴", "淫情贴图", "淫情女老师", "淫情女教师", 366 | "淫影院", "淫影片", "淫影", "淫屄", "淫娘", "淫妻", "淫妹", "淫妇", "淫奸", "淫女老师", 367 | "淫女电影", "淫女在线", "淫女图", "淫女", "淫声鸡巴", "淫声猛插", "淫声", "淫图穴", 368 | "淫图乱伦", "淫图", "淫唇", "淫叫舒服", "淫叫用力", "淫叫玩弄", "淫叫快速抽插", "淫叫快速", 369 | "淫叫好舒服", "淫叫好爽", "淫叫", "淫兽肉棒", "淫兽学院", "淫兽学园", "淫传", "淫亂電影", 370 | "淫亂", "淫乱的女子", "淫乱电影", "淫乱", "淫书", "淫b", "淪攻", "淪功", "淪公", 371 | "涩色成人社区", "涩色在线", "涩媳妇", "涉台政局", "消业论", "消业之说", "消业", "涂运普", 372 | "海外护法", "浪淫", "浪妻", "浪叫要飞了", "浪叫", "流脑", "流水穴", "流氓警察", "流氓民运", 373 | "流氓无产者", "流亡藏人", "流亡中的自在", "流了好多的水", "流了好多水", "洪法交流", "洪法", 374 | "洪治", "洪水的志向", "洪智", "洪志", "洪巨平", "洪哲胜", "洪吟", "洪传", "津人治津", 375 | "泽民轮功", "波霸", "泡友", "法轮弟子", "法轮工", "法轮大法好", "法轮大法", "法轮功", 376 | "法轮公", "法轮佛法", "法轮义", "法车仑工力", "法輪功", "法輪", "法谪功", "法谪", "法论功", 377 | "法论", "法論", "法西藏主义", "法能功", "法纶", "法淪", "法沦", "法某功", "法抡功", 378 | "法抡", "法愣", "法囵", "法十轮十功", "法功", "法力像佛", "法倫", "法伦", "法仑功", 379 | "法仑", "法lun功", "法lun", "法X功", "法O功", "法L功", "法L", "法0功", "沦攻", 380 | "沦功", "沦公", "沙皇李长春", "沈昌功", "沈昌人体科技", "沁园春萨达姆", "江黑心", "江魔头", 381 | "江鬼", "江驴", "江路线", "江贼", "江责民", "江蛤蟆", "江胡", "江者民", "江老贼", 382 | "江罗集团", "江罗", "江系人马", "江系", "江祸心", "江神经", "江理论", "江猪媳", "江猪", 383 | "江独裁", "江牌", "江澤民", "江湖淫娘", "江浙民", "江流氓", "江派和胡派", "江派人马", 384 | "江派", "江泽民瑞士", "江泽民宋祖英", "江泽公审", "江氏集团", "江氏政治局", "江氏政治委员", 385 | "江氏家族", "江氏", "江毒", "江梳头", "江核心", "江昏君", "江择min", "江折民", "江戏子", 386 | "江恶人", "江家帮", "江宰民", "江宋", "江嫡系", "江则民", "江八点", "江作秀", "江人马", 387 | "江二世", "江主席一党专制", "江丑闻", "江三秀", "江三条腿", "江z民", "江ze民", "江core", 388 | "汕尾事件", "氵去车仑工力", "氵去", "水晶冰凤", "氯硝安定", "氯三苯乙烯", "氟硝西泮", "民阵", 389 | "民運", "民选参政", "民运分子", "民运信息中心", "民运", "民联", "民猪", "民殇", "民意论坛", 390 | "民主还专政", "民主评论", "民主论坛", "民主女神", "民主墙", "民主之声", "民主不能等待", 391 | "民为法执", "毛都露出", "毛贼东", "毛穴", "毛片", "毛爷爷复活", "毛派", "毛泽东复活", 392 | "毛时代大饥荒揭秘", "淫色贴图", "毛妹妹社区", "毛厕洞", "毛厕东", "毛共", "毛主席復活", 393 | "毛主席小平床", "毛主席复活", "毛一鮮", "母子情欲小说", "母子乱伦", "母之欲火", "殉道圣人", 394 | "死刑犯现场枪毙", "死刑犯图片", "死刑枪毙", "死亡筆記", "死亡笔记", "死亡日誌", "死亡日志", 395 | "武装反抗", "武藤蘭", "武藤兰", "武腾兰", "正邪大决战", "正派民运", "正法时期", "正法", 396 | "正念正行", "正念", "正信", "正义党论坛", "欲生欲死", "欲火高涨抽插", "欲火高涨", "欲望格鬥", 397 | "欲望格斗", "欲望地下城", "欲望候车室", "欲望之血", "欲仙欲死", "欧美色图", "欧美淫乱", 398 | "欧洲圆明网", "槍決現場", "槍決女犯", "梦网洪志", "梦娃网", "梦中的女孩", "梁擎墩", "格庵遗录", 399 | "根浴", "枪货到付款", "枪淫少妇", "枪油", "林彪事件真相", "极色社区", "极品穴", "李鸿智", 400 | "李鸿志", "李红痔", "李红智", "李红志", "李洪誌", "李洪痣", "李洪智", "李洪宽", "李洪X", 401 | "李弘旨", "李宏治", "李宏智", "李宏志", "李大轮子", "李大尸", "李三共志", "权斗", "杂种", 402 | "杀黑庄", "杀猪粉", "杀民迎佛", "杀庄一肖", "杀庄", "杀害学生", "杀人盗器官", "杀人事件", 403 | "朴鸣呼", "朱颜血", "朱溶剂", "朱毛", "朱基", "末世论", "末世劫难", "未来震源", "朝河蘭", 404 | "朝河兰", "會陰", "最淫官员", "最新黄站", "曾道人内部", "暴菊", "暴政", "暴干", "暴動", 405 | "暴动", "暴亂", "暴乱", "暧昧贴图论坛", "晶白体", "景德镇", "普提功", "是中国社会的爱滋病", 406 | "春藥", "春药嫩穴", "春药", "春宵", "春宫图", "春宫", "星光伴我淫", "昝爱宗", "昏迷剂", 407 | "昏藥", "昏药", "明星人体吧", "明慧", "明思网", "明心网", "明hui", "昆仑女神功", 408 | "旧民运", "日逼", "日死你", "日本幼女吃棒吞精淫图", "日本变态嫖客", "日月气功", "日批", "日您", 409 | "日你妈", "日你", "日他", "无帮国", "无官正", "无人性的政权", "新诸侯", "新语丝", 410 | "新观察论坛", "新约教会", "新疆獨立", "新疆独立", "新疆独", "新疆暴力", "新疆暴乱", 411 | "新疆反恐纪实", "新疆分裂主义", "新疆人七月四日哀悼", "新搪人电视台", "新搪人", "新唐人电视台", 412 | "新唐人晚会", "新党", "文革是毛的民主试验", "教徒人权", "救度众生说", "救度世人", "救度一切众生", 413 | "政治诉求", "政治恶棍", "政治小丑", "政治侦察学", "政治人祸的源头", "政府软弱", "政府无能", 414 | "放荡青春", "放入春药", "攻击党政", "支那猪", "支那", "支联会", "支持台湾独立", "操逼", 415 | "操蛋", "操穴", "操比", "操死", "操我", "操弄肉棒", "操弄", "操小逼", "操共产党", 416 | "操你媽", "操你娘", "操你妈", "操你", "操他", "操B", "擄童割器官", "摸胸", "摸奶门", 417 | "摸奶", "摩门教", "摩的司机大游行", "摇头玩", "摇头丸", "搞客吧", "搞个处女", "搖頭丸", 418 | "搔穴", "搅珠", "援藏网", "援交", "揭批书", "換妻", "插逼", "插进穴", "插进来", 419 | "插进你的下面", "插进你下面", "插肛", "插肉", "插穴", "插的好舒适", "插的好舒服", "插爆", 420 | "插插", "插我", "插弄", "插妹妹", "插她", "插女", "插入穴", "插你的下面", "插你", 421 | "插他", "插B", "提供小姐", "提供K粉", "推翻社会主义制度", "推翻专制独裁的共产党", "推油", 422 | "换妻俱乐部", "换偶", "捅我", "捅你", "挺胡", "挺动", "按摩棒", "按摩小姐", "择民", 423 | "招聘小姐", "招聘坐台少爷", "招聘坐台小姐", "招聘兼职美女", "招聘公主", "招妓", "招坐台少爷", 424 | "招坐台小姐", "招募小姐", "拍花子", "拍肩迷", "拍肩药", "拍肩粉", "拍肩神藥", "拍肩神", 425 | "拍丸", "拉萨事件", "拉帮游说", "抽送", "抽插搓揉乳房", "抽插", "抽捣", "抽弄", 426 | "抵制北京奥运", "报禁党禁", "报禁", "报码聊天", "护法", "护士的穴", "护士24点", "抢粮记", 427 | "抢圣火", "抡功", "抠逼", "抠b", "抗议中共当局", "找男", "找女", "打飞机口交打炮", "打炮", 428 | "打倒胡锦涛", "打倒温家宝", "打倒共产党", "打倒中共", "手淫", "我靠", "我草", "我的第一次外遇", 429 | "我的性启蒙", "我日", "我操你", "我操", "我包富婆", "我们自杀吧", "成佛做主", "成人频道", 430 | "成人電影", "成人雜誌", "成人配色", "成人贴图", "成人貼圖", "成人论坛", "成人論壇", 431 | "成人视频聊天", "成人视频", "成人表演", "成人聊天室", "成人网站", "成人网淫女", "成人网", 432 | "成人網站", "成人笑话", "成人笑", "成人站", "成人社區", "成人社区", "成人电影网", "成人电影", 433 | "成人激情聊天室", "成人激情", "成人漫画", "成人杂志", "成人文学", "成人性爱用品", "成人影院", 434 | "成人影视", "成人录像", "成人小说", "成人小說", "成人小电影", "成人导航", "成人在线电影", 435 | "成人在线", "成人圖片", "成人图片", "成人图库", "成人卫星频道", "成人午夜场", "成人俱乐部", 436 | "成人交友", "成人书库", "成人bt", "慈悲功", "惨绝人寰的大跃进", "惠澤社群", "惊暴双乳", 437 | "情色贴图", "情色论坛", "情色网", "情色电影", "情色文学", "情色影院", "情色影片", "情色帖图", 438 | "情色小说", "情色大片", "情色图片", "情色呻吟", "情色光碟", "情色", "情欲", "情杀", 439 | "情感陪护", "恶警", "恶党", "恩诺欣", "恐懼殺手", "恐惧杀手", "恐怖牢籠", "恐怖牢笼", 440 | "恐怖手段", "恐共", "性高潮", "性虐待", "性虐", "性虎", "性色社区", "性色", "性网站", 441 | "性網站", "性福人生", "性福", "性电影", "性爱网", "性爱电影", "性爱用品", "性爱日记", 442 | "性爱文学", "性爱文字", "性爱教育", "性爱教", "性爱录像", "性爱图片", "性爱", "性游戏", 443 | "性欲较强", "性欲泛滥", "性欲XY", "性欲", "性服务工作者", "性服务", "性教官", "性感美女写真", 444 | "性感猫装", "性感沙灘", "性感沙滩", "性感撲克", "性感扑克", "性愛電影", "性愛", "性息网", 445 | "性息", "性开放的", "性开放俱乐部", "性学教授", "性奴集中营", "性奴营", "性奴", "性器", 446 | "性启蒙老师", "性吧", "性友谊", "性免费电影", "性信息交友", "性伴侣", "性伙伴", "性交大赛", 447 | "性交", "性事", "快餐美女", "快餐小姐", "快操我", "心藏大恶", "强盗警察", "强烈抗议中共当局", 448 | "强暴", "强效失意药", "强效失忆药", "强姦", "强奸肉棒", "强奸淫水", "强奸制服", "强奸II", 449 | "强奸", "强j", "张戎", "弘法会", "弘法", "弄穴", "开苞", "开天目", "开垦民主", 450 | "开周天秘法", "建定防火", "建国党", "廣安事件", "庭妍奢恋", "废除劳教签名", "废统", "应招", 451 | "床第教战", "床上功夫", "广安事件", "广场事件", "幽幽性感写真网", "幼齿", "幼逼", "幼穴", 452 | "幼幼诱女", "幼女肉棒", "幼女", "幼交", "幼b", "平反六四", "干炮", "干死你", "干扰器", 453 | "干妳老母", "干妳娘", "干妳妈", "干妳", "干她", "干你娘", "干你妈逼", "干你妈b", "干你妈", 454 | "干你", "干他", "帮人怀孕", "师父法身", "巴哈依教", "巨波", "工运", "屠杀学生", "属灵教", 455 | "屙民", "屄裏", "屄友", "屄儿", "屁股肉棒", "屁穴", "屁眼", "就要摸图片网", "就爱色", 456 | "就去色色", "就去爱", "少爷坐台", "少年阿宾", "少妇自拍", "少妇穴", "少妇白洁", "少妇熟女", 457 | "少妇", "少女高潮", "少女峰", "少女俱乐部", "少儿勿入", "少儿不宜", "小鸡鸡", "小穴鸡巴淫水", 458 | "小穴淫液", "小穴好舒服", "小屄", "小姨子穴", "小姐招聘", "小姐招收", "小姐招募", "小姐快餐", 459 | "小姐坐台", "小姐口活打炮", "小姐上门", "小jj", "将则民", "射精", "射出来", "射乳", 460 | "封圣", "对共产党清算", "对中共的姑息就是对死难者的残忍", "富婆包我", "密穴", "寂寞少妇", "定情药", 461 | "定情粉", "官匪一家", "宗功", "宏法", "宏治", "宏恩", "宏志", "安魂网", "宇宙最高法理", 462 | "宇宙大法", "宇宙主佛", "它妈的", "学院暴动", "学运分子", "学运", "学自联", "学联", 463 | "学生暴动", "学生妹床上疯狂", "学生妹", "学生信仰", "学潮事件", "学潮", "嫩逼", "嫩穴你看", 464 | "嫩屄", "嫩b", "嫖雞", "嫖妓", "媽媽的他的", "媽個", "婬水", "婊子", "娇喘", 465 | "娇吟肉棒", "娇吟", "姐的穴", "姐开苞", "姐姐开苞", "妹的服务", "妹开苞", "妹妹穴", 466 | "妹妹的屄", "妹妹出售", "妓师", "妓女的口号", "妓女", "妈逼", "妈穴", "妈的", "妈批", 467 | "妈妈的他的", "妈了个逼", "妈个", "好痒", "好爽用力插穴", "好爽", "她的mm", "奸魔Ⅱ", 468 | "奸淫抽插", "奸淫", "奸杀", "奶子", "奶头真红", "女神欲望图库", "女神教", "女男出售", 469 | "女特服", "女性服务", "女孩上门", "女奴", "女士服务", "女友坊", "女体图片", "女体", 470 | "女伟哥", "女优片", "女优", "女人穴", "女人出售", "女ds", "套弄", "套动肉棒", "套动双乳", 471 | "套动", "夹紧肉棒", "失身药", "失身", "失意藥", "失忆药", "夫妻性事", "夫妻友论坛", 472 | "太阳圣殿教", "太王四神记", "太子黨", "天音功", "天音专辑", "天要灭中", "天父的儿女", 473 | "天灭中共", "天灭中", "天津事件", "天安门屠杀", "天安门大屠杀", "天安门事件", "大陆独裁者", 474 | "大陆同修", "大逼", "大记元", "大花逼", "大纪园", "大纪元杂志", "大纪元时报", "大纪元新闻网", 475 | "大紀元", "大禁", "大砝弟子", "大法洪传", "大法新闻社", "大法弟子", "大法师傅", "大法大纪园", 476 | "大法大福", "大法修炼者", "大法之声", "大法", "大庆工潮", "大宝法王", "大學騷亂", "大学骚乱", 477 | "大学艳遇史", "大学艳遇", "大学暴动", "大妓院", "大奶mm", "大圆满法", "大善大忍", "大史纪", 478 | "大参考", "大jj", "大b", "大B", "够鳋", "夜色激情导航", "夜总会公关", "夜场女模特", 479 | "夜场兼职", "夜勤病栋", "多美康安定片", "多夜情", "外蒙回归", "复临安息日会", "处男出售", 480 | "处女终结者", "处女穴", "处女出售", "塔克拉玛干人权联合会", "城市激情聊天室", "坚挺丰满的双峰", 481 | "坐台少爷", "坐台小姐", "坐台公关", "坐台", "坐交", "地震天谴", "地磅仪", "地下律师服务点", 482 | "圣灵重建教会", "圣殿教", "圣战组织", "土匪政府", "国际西藏运动", "国际援藏网", "国际声援西藏", 483 | "国色天香网", "国统纲领", "国统会", "国母宋祖英", "国之利刃", "回汉冲突", "回民猪", "回民暴动", 484 | "回忆六四", "四種當", "四种当", "四无目标", "四川独立", "四川独", "四川大地震异象揭密", 485 | "四二六社论", "四二五事件", "嗨药", "嗨妹", "嗑药", "喷雾迷药", "喷雾型迷药", "喷精", 486 | "喷潮", "喷你", "善恶有报", "售麻古", "售迷药", "售冰毒", "售k粉", "唐人电视台", "哲民", 487 | "和平演变道路已被中共堵死", "和平修练", "和奸成瘾", "吸吮阴肉", "吸吮淫水", "吸吮小穴", "含鸡鸡", 488 | "后面插", "同淫", "同性服务", "同性恋吧", "同志用品", "同志服务", "同居社區", "同居社区", 489 | "同化大珐返本归真", "同化大珐", "合一共融", "吃角子老虎", "台盟", "台獨", "台湾青年独立联盟", 490 | "台湾自由联盟", "台湾独立", "台湾独", "台湾有权独立", "台湾政论区", "台湾总统", "台湾性虎", 491 | "台湾建国运动组织", "台湾应该独立", "台湾国", "台湾团结联盟", "台湾共合国", "台湾AB成人导航", 492 | "台人制台", "台du", "叫鸡", "叫春", "叫床女优", "叫床", "叫小姐", "古方迷香", "口鉸", 493 | "口淫", "口活", "口交", "变频棒", "发骚", "发轮功陈果", "发轮功", "发轮", "发论功", 494 | "发论公", "发论", "发纶", "发浪", "发沦", "发正念", "发抡功", "发抡", "发情", "发囵", 495 | "发伦工", "发伦功", "发伦", "发仑da发", "发仑", "反禁摩签名", "反禁摩", "反社会主义", 496 | "反社会", "反攻大陆", "反对共产党", "反对共产主义", "反对党", "反宇宙", "反右题材", "反共言论", 497 | "反共传单", "反共", "反党", "反中游行", "反中共黑色暴力", "反中", "反G", "双腿间的禁地", 498 | "双性恋", "双峰", "双乳", "去色色", "去他娘的", "厦门大游行", "历史篡改者", "厅房公主", 499 | "卵蛋", "卖骚", "卖逼", "卖淫", "卖比", "卖春", "华藏功", "午夜激情", "升天", 500 | "千禧弘法", "十足十恶", "十大独裁", "十六世大宝法王", "十八禁", "十八摸", "十七大权力争霸战", 501 | "北京黑幕", "北京独立", "北京战争", "北京市委黑幕", "北京劲展鹏", "北京之春", "包房公主", 502 | "包娃衣", "包厢公主", "劣等人", "功学员", "功学", "功友弟子", "功友", "割肉人", "制服诱惑", 503 | "制作摇头丸配方", "则民", "出售麻古", "出售香港GHB迷幻水", "出售迷魂药", "出售迷药", "出售美女", 504 | "出售毒品配方", "出售春药性药", "出售妹妹", "出售大量冰毒K粉", "出售大量冰毒", "出售处男", 505 | "出售处女", "出售冰毒配方", "出售冰毒", "出售AV", "凌虐玉门", "净白体", "冰火", "农运", 506 | "军妓", "内争人权", "兼职美女", "兼职的妹妹", "兼职妹妹", "兼职哥哥", "兵运", "共黨", 507 | "共青背景", "共青团派", "共铲党", "共贼", "共產黨", "共独", "共残党", "共惨党", "共字玄机", 508 | "共奴", "共匪", "共军", "共党", "共产王朝", "共产极权", "共产无赖", "共产小丑", 509 | "共产党的末日", "共产党的报应", "共产党专制", "共产主义黑皮书", "共产专制", "共chang党", 510 | "共X党", "六四青年网", "六四血案", "六四母亲", "六四政变", "六四惨案", "六四屠杀", "六四屠城", 511 | "六四宣言", "六四学潮", "六四天网", "六四受难者家属证辞", "六四内部日记", "六四事件", "六四之役", 512 | "六九体位", "公子族", "公子党", "公关男", "公关小姐", "公关女", "公关夜总会", "公关坐台", 513 | "公产党", "公主包厢", "公主ktv", "八九学潮", "兩性淫亂", "全套美女", "全國二奶", "全国二奶", 514 | "入珠环", "党风日下", "党禁", "党棍官僚", "党棍", "党妈妈", "党内言事潮", "党内权争", 515 | "党内危机", "党保平安", "免费黄色电影", "免费铯狐艳书网", "免费激情电影", "免费偷拍", "免费a片", 516 | "先天健康法", "元极功", "僵贼民", "僵贼", "傻逼", "傻X", "傻B", "催情迷昏药", "催情液", 517 | "催情水", "催情春药", "催情", "偷欢", "偷情", "做鸡", "做要带套", "做爱", "做愛", 518 | "做台", "做ai", "倫攻", "倫功", "倫公", "侮辱老师", "使劲淫水", "你娘的", "你娘", 519 | "你妈逼", "你妈的", "你他妈", "作爱", "伴我淫", "伪水", "伪民运", "伪大", "伦攻", 520 | "伦功", "伦公", "传九退三", "伊斯兰运动", "伊扎布特", "任泽民", "任你淫", "以身护法", 521 | "以血护法", "他母亲", "他媽的", "他娘的", "他妈的", "人妻小说", "人妻", "亲蛋蛋", 522 | "亲吻蛋蛋", "亲共行动", "亲共媒体", "亲共分子", "亲jj", "亮穴", "京爆", "换妻俱乐部", 523 | "交换夫妻", "交媾", "交奸", "亡共者胡", "亡党", "亚洲色图", "亚洲自由电台", "亚洲自由之声", 524 | "亚洲无码穴", "亚洲床上色情", "五月天妹妹图片网", "五奶小青", "二逼", "二奶", "二B", "乳首", 525 | "乳球", "乳伦", "乳fang", "乱淫", "乱伦熟女", "乱伦小说", "乱伦", "乱伦小说", 526 | "乱交的故事", "乱交", "买枪", "买春堂", "买淫", "买春", "九评共产党", "九评公产党", 527 | "九评之一评共产党是什么", "九十三运动", "乖乖药", "乌鲁木齐暴动", "乌鲁木齐暴力事件", "乌鲁木齐事件", 528 | "主席忏悔", "为党不为国", "丰韵少妇", "丰乳肥臀", "丰乳美臀", "中正纪念歌", "中山公园哀悼", 529 | "中央黑幕", "中天一气功", "中国过渡政府", "中国社会进步党", "中国社会的艾滋病", 530 | "中国留学生与达赖喇嘛单独会谈记", "中国猪", "中国正义党", "中国支配下的朝鲜经济", "中国报禁", 531 | "中国成人通", "中国成人网站", "中国成人网", "中国性爱城", "中国性城", "中国共产党亡", 532 | "中国六四真相", "中南海黑幕", "中南海惊现东宫小朝廷", "中南海内斗", "中华联邦政府", "中华昆仑女神功", 533 | "中华人民正邪", "中共黑帮", "中共邪毒素", "中共邪党", "中共退党", "中共迫害", "中共走狗", 534 | "中共解体", "中共独裁", "中共腐败", "中共网特", "中共统治", "中共监狱", "中共的血旗", 535 | "中共的腐败与残暴", "中共的罪恶", "中共王朝", "中共独裁", "中共独枭", "中共特务组织", 536 | "中共流氓特务", "中共流氓政权", "中共流氓政府", "中共洗脑", "中共权力斗争", "中共暴政", 537 | "中共政治游戏", "中共政治流氓", "中共政坛腐败内幕", "中共成人影视网", "中共恶霸", "中共恐惧", 538 | "中共心中最大的恐惧", "中共当局", "中共帮凶", "中共帝国", "中共封锁", "中共封网", "中共太子", 539 | "中共内斗", "中共党魁", "中共党文化", "中共保命", "中共伪政权", "中共任用", "中共亡", 540 | "中共中央黑幕", "中共专制", "中共三大势力谁来执政", "个邪的党魔教", "个邪的党", "个人圆满说", 541 | "两性话", "两性私语", "两性狂情", "两性淫乱", "两性屋", "两性乐园", "两乳之间", "两个中国", 542 | "丝袜聊天室", "丝袜美腿", "丝袜美女", "丝袜写真", "丝腿乐园", "东突厥斯坦伊斯兰运动", 543 | "东突厥斯坦伊斯兰", "东突厥斯坦", "东突", "东社", "东土耳其斯坦", "东北风情熟女之惑", "东伊运", 544 | "业力轮", "业力回报", "世界通", "世界开运动功", "世界以利亚福音宣教会", "与表妹通奸", "下法轮", 545 | "下体", "上访军", "上海独立", "三退", "三脱", "三级电影", "三级片BT下载", "三級片", 546 | "三水法轮", "三挫仑", "三去车仑工力", "三去车仑", "三三九乘元功", "万法归一功", "丁香社区", 547 | "丁香五月天", "一起干大波妹妹", "一贯道", "一蚕缠", "一级黄电视", "一本道", "一夜激情", 548 | "一夜情迷奸", "一夜情俱乐部", "一夜情", "一夜性网性息网", "一夜性网", "一军两策", "一党私利", 549 | "一党独裁", "一党专政", "一党专制", "一中一台", "zifen", "zhuanfalun", 550 | "zhenshanren", "y蒂", "y茎", "y户", "yin部", "yin道", "yin毛", 551 | "yinshui", "yindi", "xuechao", "vip公主", "qingse", "mm穴", 552 | "lihongzhi", "ktv公主", "j巴", "j吧", "jiqingshaofu", "h图", 553 | "hongzhi", "fuck", "fa轮", "falungong", "falun", "e夜情", "b穴", 554 | "b痒", "b好痒", "bt成人", "bitch", "a片网", "av女", "X夜激情", "TNND", 555 | "TND", "TMD", "TAM", "SM虐待", "SM用品", "SEX情色论坛", "Party", "ONS", 556 | "LiHongzhi", "LHZ", "K粉冰出售", "K粉", "J巴", "H站", "H电影", "H片", 557 | "H图", "G点刺激棒", "GONG党", "GCD", "Fa轮功", "FalunDafa", "FaLun", 558 | "FUCK", "FL大法", "FL功", "FLG", "B样", "A片", "AV电影", "AV女色情自拍", 559 | "AV女优", "AV女", "AV出售", "9评共党", "97色色", "97狼图网", "91明星人体吧", 560 | "912事件", "89风波", "89学潮血腥屠杀", "89学潮大屠杀", "89事件", "64运动", "64惨案", 561 | "64大屠杀", "64事件", "3退", "1夜情", "18禁" }; 562 | 563 | text5k = "几年以前,读到白石、冯以平的《从囚徒到省委书记》时,就感到非梓健特药常嫩阴惊奇,惊奇来自作者的身份。两位作者炸弹教都是党的高级干部,白石更是担任过省委副书记和省纪委书记。政界高层领导从事炸立交文学创作,也算不得新奇之事。其实一个作家在社会上完全可能具有两种以上的身份角色,既有作家的身份,也有政治领导的身份。不过,他们在进入到文学写作时,这两种身份往往是分离的,或者说其政治领导的身份是隐藏在背后以隐形的方式影响到他们的文学写作的。这样我们就看到了白石的独特之处了。白石从领导岗位上退下来以后,就以满腔的热情投入到文学写作之中。但他在进行写作时,他的作家身份和政治领导的身份不是分离的,这两种身份构成了统一的人格,共同左右着白石的文学思维。因此,他与夫人冯以平合作的长篇小说就具有强烈的政治情怀,也紧密扣合着中国当代政治的进程。" 564 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 565 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 566 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 567 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 568 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 569 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 570 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 571 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 572 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 573 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 574 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 575 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 576 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 577 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 578 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 579 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 580 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 581 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 582 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 583 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 584 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴"; 585 | 586 | text20w = "几年以前,读到白石、冯以平的《从囚徒到省委书记》时,就感到非梓健特药常嫩阴惊奇,惊奇来自作者的身份。两位作者炸弹教都是党的高级干部,白石更是担任过省委副书记和省纪委书记。政界高层领导从事炸立交文学创作,也算不得新奇之事。其实一个作家在社会上完全可能具有两种以上的身份角色,既有作家的身份,也有政治领导的身份。不过,他们在进入到文学写作时,这两种身份往往是分离的,或者说其政治领导的身份是隐藏在背后以隐形的方式影响到他们的文学写作的。这样我们就看到了白石的独特之处了。白石从领导岗位上退下来以后,就以满腔的热情投入到文学写作之中。但他在进行写作时,他的作家身份和政治领导的身份不是分离的,这两种身份构成了统一的人格,共同左右着白石的文学思维。因此,他与夫人冯以平合作的长篇小说就具有强烈的政治情怀,也紧密扣合着中国当代政治的进程。" 587 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 588 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 589 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 590 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 591 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 592 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 593 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 594 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 595 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 596 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 597 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 598 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 599 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 600 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 601 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 602 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 603 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 604 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 605 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 606 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 607 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 608 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 609 | + "尽管作者在后记中强调了这并网民获刑不是一部自传体小说,但毫无疑问,作者本人在领导岗位上的政赵紫阳操嫂子治经验和体嫩阴验是支撑这部小说的骨骼。对于对高层权力内幕充满好奇的普通读者来说,小说的故事情节就具有极炸立交强的吸引力。这类题材的小说一度成为图书市场最畅销的小说品种,衍生出反腐小说、官场小说、政治小说等各种名目。但读了白石的《上任之后》,就会发现,这类小说对于政治的描写,大多是建立在想像的基础之上的,与现实的政治不说相去甚远,至少也是隔着一层皮毛。《上任之后》才是对现实政治的最为真切的摹写。因此,这部小说虽然也有官场争斗,也有贪官,也有政治权力腐败,但没有我们在反腐小说或官场小说中所看到了模式化的情节,小说的情节可以说完全来自生活、来自现实的政治。白石为我们讲述的故事虽然不像那些反腐小说充满了强烈的戏剧性,但同样是出人意料的。这就在于高层的政治生活对于我们来说是一个未知的领域。从这个角度说,《上任之后》同样有着极强的吸引力,但它的认识价值却是其他反腐小说所不能比拟的,因为白石为我们提供的作品才是一面真正的镜子,它能让我们看到政治生活的真相。" 610 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 611 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 612 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 613 | + "《上任之后》是《从囚徒到省委书记》的第三部,其人物是联贯的。小说讲述的是主人公白刚担任省操嫂子委书记后的故事。" 614 | + " 《上任之后》大致上从“文革”结束、逐步恢复正常的政治秩序的“新时期”写起。这一段历史时期被称作是“拨乱反正”的时期炸弹教。白刚被任命为省委书记,嫩阴" 615 | + "走马上任时,“文革”的后遗影响还网民获刑在,他又是一个刚刚平反的“右派”。这给白刚的工作带来很大的难操嫂子度,因为尽管说“拨乱反正”,但什么为“乱”,而返到哪里才算“正”,当时嫩阴人们的思想并不是明确统一的。白刚在炸立交这思想迷茫、局面混乱的状况下,能够辨析真伪是非,将工作顺利地开展起来,很大程度上得益于他在厄运中对马克思主义和共产党的精髓有了更加切身的体会,因而在错综复杂的政治斗争中更加充满智慧。比方关于印刷文件不及时的问题,是省委机关积重难返的老大难问题,他通过下厂调查研究,即刻就以“四两拨千斤”的方式迎刃而解。这个看似简单的问题为什么在偌大的权力机关里竟变成积重难返的问题,说到底,就是一个官僚主义在作祟。而白刚采取的方式,不过是共产党一直提倡的“调查研究”罢了。这就是一种拨乱反正,拨“官僚主义”之乱,反“调查研究”之正。类似这样的生动细节在作品中俯拾即是。 " 616 | + "毛泽东曾经说过:“政治路线确定网民获刑之后,干部就是决定的因素。”拨乱反正在很大程度上首先必须从干部任用制度和人事炸弹教制度上做起。" 617 | + "《上任之后》的主要篇幅都涉网民获刑及到干部任用问题。小说形象地反映了新时期以来中国共产党在干部任操嫂子用制度和人事制度改革上的民主化进程。白刚的破格被起用,就是我党在当时的非常嫩阴时期所采取的非常化举措。随着政治秩序的逐步正常化,如何选拔干部就成为需要认真对待的政治大问题。我党在实践中摸索出一系列新的经验,在人事制度改革方面取得了可喜的成果。小说通过白刚的故事很生动地展示了这一历史过程。比方说,过去任命干部都是秘密进行的。白刚代表省委考察滨海地区行署的领导班子选拔时,认为选干部由几个人决定弊端太多,提出了在三干会上让大家投票推荐副专员和地委委员人选的大胆主张。他们采取这一主张后,几位有真才实学、思想正派的人才便脱颖而出。毫无疑问,当时白刚采取这种方式选拔干部是冒着很大的政治危险的,但这种群众推荐的民主方式逐渐纳入到人事制度中,成为一种必要的程序了。而平哲、官世通等人之所以能够公开地结党营私,就是未经改革的干部人事制度为他们提供了组织上的保证。当小说情节进展到后来时,也就是上个世纪的80年代末90年代初,我们就感到,人事制度的民主机制和监督机制已经到了迫切需要加强的时刻了。小说写到这里却戛然而止,它让我们怀着更大的期待,期待白石和冯以平的写作继续进行下去,我们相信,小说中白刚与平哲的矛盾冲突还会有更加激烈的表现。更加精彩的故事还在背后,更加振奋人心的胜利也在背后。" 618 | + "作者基本上是以政治生活经验的逻辑来组织小说情网民获刑节发展的,这样做的长处是凸显了情节背后所包含的关于政治历史的炸立交正确判断,但也因此破操嫂子坏了小说叙述的逻辑。比方说,小说专门有一章讲述白刚的炸弹教妻子吴玉萍被任命为刊物主编后如何打开局面的,从全面展示干部制度改革进程的角度说,这一章的内容很有必要,但吴玉萍尽管是白刚的妻子,却并没有融入到小说情节发展之中,成为一个多余的人物,因此专门插入一章来讲她的故事,就完全破坏了小说的结构。这也是与白石写作时处于作家与政治领导的双重身份之中有关系。由于双重身份的缘故,也许我们不把它当成一部纯粹的小说来读,更能体会到作者的深意。"; 619 | 620 | Finder.addSensitiveWords(words); 621 | } 622 | 623 | } 624 | --------------------------------------------------------------------------------