package com.brucezee.jspider.common; import com.brucezee.jspider.common.utils.SpiderUrlUtils; import java.util.HashMap; import java.util.Map; /** * 各个网站对应的相应字符集 * Created by brucezee on 2017/1/9. */ public class Charsets { private Map<String, String> charsets = new HashMap<String, String>(2); public static Charsets create() { return new Charsets(); } public static Charsets create(String charset) { Charsets s = new Charsets(); s.setCommonCharset(charset); return s; } /** * 设置域名对应字符集 * @param host 域名关键字 * @param charset 字符集 */ public void put(String host, String charset) { charsets.put(host, charset); } /** * 获取某个域名对应的字符集 * @param host 域名关键字 * @return 失败返回null */ public String get(String host) { String ch = charsets.get(host); return ch != null ? ch : getCommonCharset(); } /** * 设置通用字符集 * @param charset 字符集 */ public void setCommonCharset(String charset) { put("*", charset); } /** * 获取通用字符集 * @return 通用字符集 */ public String getCommonCharset() { return charsets.get("*"); } /** * 匹配url获取相应字符集 * @param url 网址 * @return 失败返回null */ public String match(String url) { String commonCharset = getCommonCharset(); if (commonCharset != null) { return commonCharset; } String host = SpiderUrlUtils.getUrlHost(url); if (host != null) { for (Map.Entry<String, String> entry : charsets.entrySet()) { if (host.contains(entry.getKey())) { return entry.getValue(); } } } return null; } }