2017-06-25 27 views
0

HTMLページで、javascript変数の値を選びたいと思っています。以下はHTMLページのスニペットです。jsoupでJavaScriptを解析する方法

<script id="page-data"> 
 
    var __IS_MIRA__; 
 
    var __INITIAL_STATE__ = undefined; 
 
    var __CACHE_REGISTRY__ = undefined; 
 
    var __NEXT_CACHE_ID__ = undefined; 
 
    var __DMP_CONFIG__ = {"context":{"access_token":null,"ad_sync_script_url":"http:\/\/www.taolao.com\/cdn\/manifest\/video\/x7775n8.m3u8?auth=1498553714-2562-k2kou1s3-7be1a0645b68824508f7f4989900d487yk2kou1s3&bs=1","admin":false,"as_number":"AS18403","user":null}

私の目的はjsoupを使用して、このページから変数DMP_CONFIGの値を読むことです。 jsoupで可能ですか?もしそうなら、どうですか?

これは私のJavaコードです。この場合

Document doc = Jsoup.connect(""+urlhtml).get(); 
 
       Element div = doc.getElementById("page-data"); 
 
       Pattern p = Pattern.compile("(?is) __DMP_CONFIG__ = \"(.+?)\""); // Regex for the value of the key 
 
       Matcher m = p.matcher(div.html()); 
 
       while(m.find()) { 
 
        mData =m.group(1); 
 
       }

答えて

0

、あなたはグループの結果と一致する正規表現を使用する必要があります。

ad_sync_script_url":"([^"]+)" 

として以下のサンプルコード:

String REGEX = "ad_sync_script_url":"([^"]+)""; 

    Pattern r = Pattern.compile(REGEX); 
    Matcher m = r.matcher("String that you want to match"); // get a matcher object 

    if(m.find()){ 
    String matchValue = m.group(0); 
    String result = matchValue.Replace("\"",""); 
    }else{ 
     //doesn't match result. 
    } 

・ホープ、この助け:)

関連する問題