2019独角兽企业重金招聘Python工程师标准>>>

/*** 从http reffer 里面获取关键字,并提取中文* * @author  doctor** @time  2015年5月18日*/
public class RefererParser {public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException {String refererUrl = "http://m.aicai.com/p/vmall.do";
System.out.println(getKeyWord(refererUrl));A
refererUrl = "http://m.aicai.com/p/toutiao.do?vt=5&agentId=2333789";
System.out.println(getKeyWord(refererUrl));refererUrl = "http://m1.baidu.com/from=942d/s?word=15070%E6%9C%9F%E8%83%9C%E8%B4%9F%E5%BD%A9&sa=tb&ts=0934861&t_kt=53";
System.out.println(getKeyWord(refererUrl));
refererUrl = "https://www.baidu.com/link?url=VX10ANhmzaeQJwd6RpRFFgfco-NiY0dKPoxe5qat_4jphpB0eiKgBjavWlS-OWOa&wd=%E8%83%9C%E8%B4%9F%E5%BD%A9%20%E6%96%B0%E6%B5%AA&issp=1&f=8&ie=utf-8&tn=baiduhome_pg&inputT=3268&oq=url%20%20";
System.out.println(getKeyWord(refererUrl));System.out.println("/");
refererUrl = "http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_dg&wd=%E6%96%B0%E6%B5%AA%E5%BD%A9%E7%A5%A8&rsv_pq=b696fdc40000363a&rsv_t=2829ceWdMJsdUztZA2mw8SBQvXKTJhTO%2B4FGnxRh71T9ThZdiQ8ZbB0GhydBdH8t2w&rsv_enter=1&rsv_sug3=8&rsv_sug1=8&rsv_sug2=0&inputT=11&rsv_sug4=3887&rsv_sug=1&bs=html%E9%A6%96%E8%A1%8C%E7%BC%A9%E8%BF%9B";
System.out.println(getChinese(getKeyWord(refererUrl)));System.out.println("/");
refererUrl = "http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_dg&wd=%E6%96%B0%E6%B5%AA%E5%BD%A9%E7%A5%A8%20caipiao%20%20%20%2C&rsv_pq=e8ed54cd0000c1c3&rsv_t=dbdeTCYnb9Wn8bVW7DQPEBBV7I5375CmQnMradi3%2BtvPGXWzk%2F1SerPZqf75Faugjg&rsv_enter=1&inputT=4744&rsv_sug3=17&rsv_sug1=12&rsv_sug2=0&rsv_sug4=5882&bs=%E6%96%B0%E6%B5%AA%E5%BD%A9%E7%A5%A8";System.out.println(getKeyWord(refererUrl));
System.out.println(getChinese(getKeyWord(refererUrl)));System.out.println("=============search.aol");
refererUrl = "http://search.aol.com/aol/search?s_it=topsearchbox.search&s_chn=prt_aol20&v_t=comsearch&q=%E6%96%B0%E6%B5%AA%E5%BD%A9%E7%A5%A8+caipiao+++%2C";System.out.println(getKeyWord(refererUrl));
System.out.println(getChinese(getKeyWord(refererUrl)));System.out.println("=============baidu");
refererUrl = "http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_dg&wd=%E6%96%B0%E6%B5%AA%20%E5%BD%A9%E7%A5%A8%20%E7%BD%91&rsv_pq=964ca37a00015711&rsv_t=f20flRQL%2FiDQHho2cKC7kCqbZY%2FK8vdyavn1ccP0kw3uAClvp9DKFv8aGtr6Rk5YIw&rsv_enter=1&inputT=334&rsv_sug3=45&rsv_sug1=20&rsv_sug2=0&rsv_sug4=648&bs=%E6%96%B0%E6%B5%AA%20%E5%BD%A9%E7%A5%A8%20%E7%BD%91%20dd";System.out.println(getKeyWord(refererUrl));
System.out.println(getChinese(getKeyWord(refererUrl)));}private static String getKeyWord(String reffer) throws MalformedURLException, UnsupportedEncodingException {
// 要支持很多,参考https://github.com/snowplow/referer-parser/blob/master/java-scala/src/main/resources/referers.yml
HashSet<String> keyWord = Sets.newHashSet("query", "wd", "word", "kw", "k", "q");
URL url = new URL(reffer);if (StringUtils.isBlank(url.getQuery())) {
return null;
}
final Map<String, String> queryMap = Splitter.on("&").withKeyValueSeparator("=").split(url.getQuery());
if (queryMap.isEmpty()) {
return null;
}List<Entry<String, String>> list = queryMap.entrySet().stream().filter(p -> keyWord.contains(p.getKey())).collect(Collectors.toList());
if (list.isEmpty()) {
return null;
}
Entry<String, String> entry = list.get(0);// 编码问题部分有待验证,不同引擎规则到底是怎么样的
String encode = queryMap.get("ie");
if (StringUtils.isNotBlank(encode)) {
if (encode.equalsIgnoreCase("gb2312")) {
encode = "gbk";
}
} else {
encode = "utf-8";
}
String result = URLDecoder.decode(entry.getValue(), encode);
return result;
}private static String getChinese(final String content) {
return content.replaceAll("[a-zA-Z]", " ").replaceAll("\\s+", " ");
}
}

转载于:https://my.oschina.net/doctor2014/blog/416423

http reffer 里面获取关键字相关推荐

  1. java 获取文章关键词_在文章中获取关键字

    首先需要的jar包 下载apache的lucene-core-3.6.2.jar,lucene-highlighter-3.6.2.jar,lucene-memory-3.6.2.jar,lucene ...

  2. linux 输出后面几列内容,Linux下使用awk如何获取关键字所在字段号,第几列,以及打印这个字段之后的所有字段?...

    netstat 的原始结果如下: [root@Test tmp]# netstat -tunp| grep 'ESTABLISHED' tcp 0 0 10.251.101.163:6379 10.2 ...

  3. ajax无刷新kesion,KesionCMS V9.04 UTF-8版本无法自动获取关键字的修改

    打开 第一步: ks_cls/Kesion.KeyCLS.asp 找到如下代码 '过滤重复字符串 For i = 0 To max - 1 flag = a(i) If iscn(flag) Then ...

  4. json阅读器_Flutter小说阅读器系列一:使用Bloc模式获取起点小说关键字提示

    Bloc模式下的小说关键字提示效果图 最近难得有些闲暇时间,所以我又打算做一个小说阅读器,以前倒是用RN+Golang写了一个,不过当时太过放飞自我导致自己看起来都很费力,这次我准备换成Flutter ...

  5. python遍历文本文件统计字符个数_用python获取txt文件中关键字的数量

    缘起: 开发人员需要tomcat中一个项目在一个月的访问请求量,因其他原因只剩下查找tomcat请求日志的方法获取,刚好最近在学习python,于是就用python摸索了下: 大体思路: 1.把相应t ...

  6. python开发跟淘宝有联系没_python每日获取淘宝首页关键字推荐词

    每日美图 介绍 因为自己想着手搞一波淘宝,准备用于获取淘宝首页关键字推荐词,想化妆品.服装这种我们是不适合做的竞争太大了. 我们暂时定为水杯这种小类目的,对于新开的店面除了刷单,最重要的还是自然流量. ...

  7. 【2020-07】落地页获取百度搜索关键字最新方法

    js获取访客百度搜索词最新方法 此方法不仅可以在搜索落地页获取百度的访客搜词关键词,在进入页面后的任意浏览页都能快速获取到本次访客来访的搜索引擎以及搜索关键词. 如果需要实时监控访客的搜索关键词数据请 ...

  8. 如何利用Google关键字工具获取网站关键字

    Google Adwords关键字工具通过基于搜索的关键字建议,可以按字词.词组.网站或类别获取关键字提示.是站长朋友们,尤其是做英文Google Adsense的英文站站长在网站关键字选择上必不可少 ...

  9. python关键字与标识符

    编程语言众多,但每种语言都有相应的关键字,Python 也不例外,它自带了一个 keyword 模块,用于检测关键字. 关键字列表 进入 Python 交互模式,获取关键字列表: >>&g ...

最新文章

  1. 设计模式——6适配器模式(Adapter)
  2. C语言竟成TIOBE年度编程语言候选!苹果iPhone 7卖得最好!
  3. ‘%.2f‘ 与 ‘{:.2f}‘.format(w) 区别
  4. 配置JDKAndroid 2D游戏引擎AndEngine
  5. Google Chrome 调试JS利器
  6. mysql替换sql中rank函数_MySQL sql Rank()函数实现
  7. 由于BOM头导致的Json解析出错
  8. docker镜像启动后端口号是多少_初识Docker
  9. Oracle 索引(转)
  10. Oracle报错01756,oracle导入数据报错处理
  11. 压缩感知重构算法之OMP算法---python实现
  12. SQL语言的3种分类
  13. 电气工程及其自动化用matlab,计算机仿真技术与CAD--基于MATLAB的电气工程(电气工程及其自动化专业精品教材普通高等教育十三...
  14. 微博数据各字段的含义
  15. Kalman Fuzzy Actor-Critic Learning Automaton Algorithm for the Pursuit-Evasion Differential Game
  16. 基于stacking集成学习的金线莲质量鉴别方法研究:人工智能与医疗的结合与发展
  17. Pom文件配置参数详解
  18. React+Echarts 实时数据监控刷新
  19. centos7 如何编译ffmpeg 带x265和nvenc
  20. 微信小程序api基础应用

热门文章

  1. PANET代码 特征融合
  2. 有感于韩国学者称韩国人祖先发明汉字
  3. 用matlab画钥匙,Matlab在锁具装箱问题中的应用.ppt
  4. 梦仙缘java_求大神帮找错误 找了一天 眼睛都瞎了 实在找不出!
  5. python和c语言的区别有哪些
  6. 心理学史上的第一个流派是构造主义,还是机能主义?|小白心理-312/347考研答疑
  7. 将Excel表格导入mysql数据表_如何把Excel导入mysql数据表的方法详解
  8. 计算机tcp端口有几个,理解 TCP(一):端口
  9. TCP/UDP端口号
  10. 用 ChatGPT 尝试 JavaScript 交互式学习体验,有用但不完美