1. 程式人生 > >jsoup抓取js(script)中的變數值

jsoup抓取js(script)中的變數值

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;
 

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; } }