package com.geccocrawler.gecco.downloader; import java.io.File; import java.net.URL; import java.util.Collections; import java.util.List; import com.google.common.base.Charsets; import com.google.common.io.Files; import com.google.common.io.Resources; /** * 随机获取userAgent,通过在classpath根目录下放置userAgents文件,配置多个userAgent,随机选择,如果希望某个ua概率较高请配置多个 * * @author huchengyi * */ public class UserAgent { private static final String DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"; private static final String DEFAULT_MOBILE_USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"; private static List<String> userAgents = null; static { try { URL url = Resources.getResource("userAgents"); File file = new File(url.getPath()); userAgents = Files.readLines(file, Charsets.UTF_8); } catch(Exception ex) {} } private static List<String> mobileUserAgents = null; static { try { URL url = Resources.getResource("mobileUserAgents"); File file = new File(url.getPath()); mobileUserAgents = Files.readLines(file, Charsets.UTF_8); } catch(Exception ex) {} } public static String getUserAgent(boolean isMobile) { if(isMobile) { if(mobileUserAgents == null || mobileUserAgents.size() == 0) { return DEFAULT_MOBILE_USER_AGENT; } Collections.shuffle(mobileUserAgents); return mobileUserAgents.get(0); } else { if(userAgents == null || userAgents.size() == 0) { return DEFAULT_USER_AGENT; } Collections.shuffle(userAgents); return userAgents.get(0); } } }