我想得到这个标签下的段落:
**如果您想在标记下看到它的样子:HERE
我试图:
Document doc = Jsoup.connect(url).userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21").get();
Elements a = doc.select("p#dev-content");
Elements b = doc.select("dev-content");
Elements c = doc.select("p#dev-content.details-text.ng-binding");
Elements d = doc.select("dev-content.details-text.ng-binding");
Elements e = doc.select("p.details-text.ng-binding");
但遗憾的是没有人工作。
我也尝试过:
Elements f = doc.select("p");
我得到了我想要的段落和不需要的段落,并且它们是重复的。
**如果您想访问我尝试过的网站:HERE
答案 0 :(得分:2)
您要定位的网站使用AngularJS加载其数据。这就是为什么Jsoup无法找到正确的段落。
希望您正在寻找的内容作为JSON字符串位于页面上。
以下是提取此数据的示例代码:
// Fetch the document
Document doc = Jsoup //
.connect("https://sabq.org/%D8%B4%D8%A7%D9%87%D8%AF-%D8%A3%D9%84%D9%81-%D8%B5%D9%81%D8%AD%D8%A9-%D8%AA%D8%B1%D9%88%D9%8A-%D9%82%D8%B5%D8%B5-%D8%A7%D9%84%D8%AD%D8%B1%D9%85%D9%8A%D9%86-%D9%85%D9%86%D8%B0-%D8%A7%D9%86%D8%B7%D9%84%D8%A7%D9%82-%D8%A7%D9%84%D8%B9%D9%87%D8%AF-%D8%A7%D9%84%D8%B3%D8%B9%D9%88%D8%AF%D9%8A") //
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") //
.get();
// Look for the script containing the JSON data
Elements scripts = doc.select("script[data-cfasync=false]");
String content = null;
for (Element script : scripts) {
String scriptText = script.html();
if (scriptText.contains("dataFirstLoad")) {
String dataFirstLoad = scriptText.replaceAll("(?i)^[\\s\\S]*dataFirstLoad\\s*=\\s*(\\{.+\\})\\s*;[\\s\\S]*$", "$1");
JSONObject json = new JSONObject(dataFirstLoad);
content = json.getJSONObject("material").getString("content");
break;
}
}
// Show content
System.out.println("Extracted content:\n" + content);
Extracted content:
<p><span style="color:#FF0000;">(تصوير :فايز الزيادي،عبدالله النحيط) :</span> تتزاحم في جناح رئاسة الحرمين الشريفين وفي مساحة صغيرة لا تتجاوز بضعة أمتار على أرض معرض الرياض الدولي للكتاب، 16 ألف ورقة، ينبعث من حروفها رحيق الطُهر لت(...) </p> <p> </p>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>