jsoup抓取js(script)中的变量值
2016-05-24 15:19
1981 查看
package com.hxqc.pricemonitor.trans; import java.util.HashMap; import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * @author FANGYUKANG * @Title SerieExtTool * @Description TODO(根据车系ID查找车系:OPTINE内容,属性,颜色,内饰颜色) * @Date: 2016年05月17日 下午16:30:52 */ public class SerieExtTool { /*设置网页抓取响应时间*/ private static final int TIMEOUT = 10000; public static Map<String, Object> getSerieExtDetail(int serieId) throws Exception{ /*车系参数配置页面*/ String serieInfo = "http://car.autohome.com.cn/config/series/"+serieId+".html"; /*用來封裝要保存的参数*/ Map<String, Object> map = new HashMap<String, Object>(); /*取得车系参数配置页面文档*/ Document document = Jsoup.connect(serieInfo).timeout(TIMEOUT).get(); /*取得script下面的JS变量*/ Elements e = document.getElementsByTag("script").eq(6); /*循环遍历script下面的JS变量*/ for (Element element : e) { /*取得JS变量数组*/ String[] data = element.data().toString().split("var"); /*取得单个JS变量*/ for(String variable : data){ /*过滤variable为空的数据*/ if(variable.contains("=")){ /*取到满足条件的JS变量*/ if(variable.contains("option") || variable.contains("config") || variable.contains("color") || variable.contains("innerColor")){ String[] kvp = variable.split("="); /*取得JS变量存入map*/ if(!map.containsKey(kvp[0].trim())) map.put(kvp[0].trim(), kvp[1].trim().substring(0, kvp[1].trim().length()-1).toString()); } } } } return map; } }
相关文章推荐
- rxjs学习笔记
- JSON 之FastJson解析
- 面向对象的JavaScript-005-Function.prototype.call()的3种作用
- js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)
- JS 清除字符串数组中,重复元素的实现方法
- JS正则表达式
- 原生js dom操作
- autocomplete+ajax+json实现自动补全功能
- 接口json转化为datatable
- 原生js的数组除重复简单实例
- json传值以及ajax接收详解
- 面向对象的JavaScript-004
- javascript策略模式
- JS获取屏幕高度的简单实现代码
- 按钮定时开关
- 面向对象的JavaScript-003
- javascript之BOM浏览器对象模型引入
- javascript之BOM浏览器对象模型引入
- go提交json、获取json、解析json
- 使用js几秒钟后跳转到对应的页面