【问题标题】:I can't get value from script to jsoup我无法从脚本中获取价值到 jsoup
【发布时间】:2017-07-25 23:22:09
【问题描述】:

我想编写代码获取价值流但失败了。

如何获取价值流:http://123.30.215.65/hls/4545780bfa790819/5/3/d836ad614748cdab11c9df291254cf836f21144da20bf08142455a8735b328ca/dnR2MQ==_m.m3u8 使用 Jsoup ?

   <html>
 <head>
  <style>html,body{margin:0;padding:0;background:#000;;}</style>
  <meta charset="utf-8">
  <script src="https://code.jquery.com/jquery-2.1.4.js"></script>
  <script type="text/javascript" src="https://cdn.jsdelivr.net/clappr/latest/clappr.min.js"></script>
  <meta name="referrer" content="no-referrer">
 </head>      
 <body> 
  <div style="width: 100%;"> 
  </div> 
  <div id="player"></div> 
  <script>
	player = new Clappr.Player({source: "http://123.30.215.65/hls/4545780bfa790819/5/3/d836ad614748cdab11c9df291254cf836f21144da20bf08142455a8735b328ca/dnR2MQ==_m.m3u8",
			parentId: '#player',
			width: '100%', height: "100%",
		    hideMediaControl: true,
		    autoPlay: true
					        });	
	</script>   
 </body>
</html>

Java 代码我:

Elements script = doc.select("script");
Pattern p = Pattern.compile("player = new Clappr.Player(\\(\"source:{\", \"(.*)\", false\\)");
                                                    //  ^^ is the capturing group
String url = "";

for (Element element : script) {
    Matcher m = p.matcher(element.data());
    if (m.find()){
        url = m.group(1);
    }
}
System.out.println(url);

【问题讨论】:

  • 试试Pattern.compile("player = new Clappr.Player\\(\\{source: \"(.*?)\"")
  • @saka1029 你或许应该这样回答
  • 我尝试但没有成功:(
  • 我尝试了代码:Pattern.compile("player = new Clappr\\.Player\(\\{source: \"(http:.*)\",.*"); 但不是成功

标签: javascript java android jsoup


【解决方案1】:

您好,在您的代码中试试这个,

String ResultString = null;
try {
    Pattern regex = Pattern.compile("source:\\s[\"](.*?[^\\\\])[\"]", Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
    Matcher regexMatcher = regex.matcher(subjectString);
    if (regexMatcher.find()) {
        ResultString = regexMatcher.group(1);
    } 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}

这就像一个魅力..! :)

【讨论】:

  • 是的。谢谢你的支持,但不明白 subjectString 。请支持
  • @XuânMai 你不明白subjectString 那么你可以快速研究Pattern 类的matcher 函数来理解它。在这种情况下,subjectString 就是你上面的element.data()。您需要使用循环编译 @Shankara 的答案
  • @XuânMai,subjectString 是你从元素中得到的脚本值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
相关资源
最近更新 更多