【问题标题】:Obtain text within script tag using Jsoup使用 Jsoup 获取脚本标签内的文本
【发布时间】:2017-12-26 02:54:29
【问题描述】:

如何使用 Jsoup 获取价值http://api.tivi8k.net/viettel/?cid=154&token=-OWPRmOicPqIKsK97SmOlQ&e=1500542988

html:

xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://api.tivi8k.net/viettel/?cid=154&token=-OWPRmOicPqIKsK97SmOlQ&e=1500542988", false);
xmlhttp.send();
link = xmlhttp.responseText;

player = new Clappr.Player({
  source: link,
  parentId: '#player',
  width: '100%',
  height: "100%",
  hideMediaControl: true,
  mediacontrol: {
    seekbar: "#ffaa56",
    buttons: "#ff7f00"
  },
  autoPlay: true
});
html,
body {
  margin: 0;
  padding: 0;
  background: #000;
  ;
}
<div style="width: 100%;">
  <div id="player"></div>
</div>

<img src="sv2.png" style="position:absolute;top:5px;right:10px" />

Java 代码

try {
    String userAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36";
    Document doc = Jsoup.connect("http://m.xemtvhd.com/vtv1.php").userAgent(userAgent).get();

    String url = doc.select("#xmlhttp.open").first().attr("data-source");

    System.out.println(url);

} catch (IOException e) {
    e.printStackTrace();
}

请支持。感谢支持

【问题讨论】:

标签: javascript java android jsoup


【解决方案1】:

这段代码将获取所有&lt;script&gt; 元素并遍历每个元素,然后它会检查他所看到的那个是你想要的行 pattern 在这里,如果是matches,它将采用group(1)(代表捕获组(.*)group(0) 是整行):

Elements script = doc.select("script");
Pattern p = Pattern.compile("xmlhttp.open\\(\"GET\", \"(.*)\", 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); //-> http://...542988

【讨论】:

猜你喜欢
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多