簡體   English   中英

使用Jsoup解析HTML div標簽

[英]Parsing HTML div tag using Jsoup

我試圖從這些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類“ message”和h4標簽內的文本並跨度“ date-time”,我試圖:

document.select("div.message");

和:

document.select("div.comments").select("div.message");

但是他們沒有用。

用5種情況針對您的html進行了嘗試,它們都可以正常工作,只需要一點注意-使用document.select("div.message");即可檢索Elements的集合,而不僅僅是單個Element document.select("div.message");

碼:

 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();

這對我有用,無法在此處發布巨大的輸出,但是您可以根據情況進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM