我想使用jsoup从html中的以下脚本标记中获取“用于慢炖锅食谱的哈希棕色砂锅”和“ PT20M”。我看了this,但没有明确的解决方案。任何指导表示赞赏。
<script id="ld" type="application/ld+json">{"@context": "http://schema.org/","@type": "Recipe","name": "Hash Brown Casserole for the Slow Cooker Recipe","prepTime":"PT20M"</script>
答案 0 :(得分:0)
请参阅脚本中的ID。您可以按ID来获取元素,并且有一个孩子。那么您可以将此子对象转换为json对象。以下是示例:
Document doc = Jsoup.parse("<script id=\"ld\" type=\"application/ld+json\">{\"@context\": \"http://schema.org/\",\"@type\": \"Recipe\",\"name\": \"Hash Brown Casserole for the Slow Cooker Recipe\",\"prepTime\":\"PT20M\"}</script>");
String str = doc.getElementById("ld").childNodes().get(0).toString();
JSONObject jsonObject = new JSONObject(str);
System.out.println(jsonObject.getString("name"));
System.out.println(jsonObject.getString("prepTime"));
**您的脚本包含:
{"@context": "http://schema.org/","@type": "Recipe","name": "Hash Brown Casserole for the Slow Cooker Recipe","prepTime":"PT20M"
如果}
之后没有PT20M
,则需要连接}
。
String str = doc.getElementById("ld").childNodes().get(0).toString()+"}";