我试图从这些div标签中获取文本,但它们都没有返回任何内容:
HTML:
<div id="comments" class="part comments last"><script type="text/rocketscript" data- rocketsrc="http://sabq.org/js/parts/comments/global.js?1324675506" data- rocketoptimized="true"></script>
<h2 class="header">التعليقات (23)</h2>
<div id="comment_5946146" class="item
">
<h4 class="direction1">
<span class="serial">1</span> *محمد * </h4>
<p class="direction1"><span class="date-time">17 جمادى الأولى 1435 | 12:46 AM</span></p>
<p class="like-buttons">
<span class="like " title="أعجبني"><span class="value">5</span></span>
<span class="sep">-</span>
<span class="unlike " title="لم يعجبني"><span class="value">0</span></span>
<input type="hidden" name="class" value="Comment">
<input type="hidden" name="id" value="5946146">
</p>
<br clear="all">
<div class="message">هؤلاء أشخاص لم يجدوا سبيلاً لطلب الرزق إلا بهذه الطريقة فكفاكم تضييقاً وخناقاً عليهم حتى في مصادر رزقهم ....</div>
</div>
我想得到div类“消息”和h4标签内的文字和跨度“date-time” 我试着:
document.select("div.message");
和
document.select("div.comments").select("div.message");
但他们没有用。
答案 0 :(得分:1)
在5个案例的情况下对你的html进行了尝试并且它们都运行正常,只是一点点注意事项 - 您正在使用Elements
<检索Element
的集合,而不只是单个document.select("div.message");
/ p>
代码:
Document document = Jsoup.parse(new File("some.html"),"utf-8");
Element message = document.select("div.message").first();
Element span = document.select("span.date-time").first();
Element comments = document.select("div.comments").first();
Element h4 = document.select("h4.direction1").first();
Element test = document.select("div.comments").select("div.message")
.first();
System.out.println(message.text());
System.out.println(span.text());
System.out.println(comments.text());
System.out.println(h4.text());
System.out.println(test.text());
给出;
م حتى في مصادر رزقهم ....
17 جمادى الأولى 1435 | 12:46 AM
التعليقات (23) 1 *محمد * 17 جمادى الأولى 1435 | 12:46 AM 5 - 0 هؤلاء أشخاص لم يجدوا سبيلاً لطلب الرزق إلا بهذه الطريقة فكفاكم تضييقاً وخناقاً عليهم حتى في مصادر رزقهم ....
1 *محمد *
هؤلاء أشخاص لم يجدوا سبيلاً لطلب الرزق إلا بهذه الطريقة فكفاكم تضييقاً وخناقاً عليهم حتى في مصادر رزقهم ....
PS:我使用.first()
来证明所用选择器的有效性,因为你的html具有独特的非重复组合。如果每个选择器有多个结果,您可以迭代集合并获得单个结果,如:
Elements message = document.select("div.message");
for (Element el : message)
System.out.println(el.text());
修改强>
要从网址解析:
更改,
Document document = Jsoup.parse(new File("some.html"),"utf-8");
要,
Document document = Jsoup.connect("http://sabq.org/WzUfde").userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21").get();
这对我有用,不能在这里发布大量输出,但你可以根据你的情况进行测试。