如何使用jsoup从特定的href获取文本?

时间:2014-06-26 07:54:34

标签: java android

我在我的Android应用程序中通过jsoup从http://m.wol.jw.org/en/wol/dt/r1/lp-e/2014/6/26获取文本。 它看起来像:

public static void refreshFromNetwork(Context context) {
    Document document;
    Elements dateElement;
    Elements textElement;
    Elements commentElement;
    try {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        sDayURL = sURL + "/" + year + "/" + month + "/" + day;

        document = Jsoup.connect(sDayURL).get();
        if (document.hasText()) {
            dateElement = document.select(".ss");
            textElement = document.select(".sa");
            commentElement = document.select(".sb");

            sDate = dateElement.text();
            sText = textElement.text();
            sComment = commentElement.html();
            sSavedForCheckingDate = sLocalDate;
            savePrefs(context);
            sDayURL = null;
        } else {
            Toast.makeText(mContext,
                    mContext.getString(R.string.warning_unstable_connection),
                    Toast.LENGTH_SHORT).show();
        }
    } catch (IOException e) {
        System.out.println("error");
        e.printStackTrace();
    }
}

但是文字中有一些hrefs。当光标在它们上面时,弹出文本框。 我无法发布图片,因此请在那里查看:http://habrastorage.org/files/45e/b09/17f/45eb0917f3644bbd9e5ea2b79d98363d.png

但是当我尝试从那个href获取文本时(我从sComment用html获取它),它返回所有文本(当我点击href时显示),而不是它的一部分,就像在弹出窗口中一样。我不是网络开发人员,所以我不明白,如何只获得所需的文字。我该怎么办?

2 个答案:

答案 0 :(得分:0)

改为使用sComment = commentElement.text();

答案 1 :(得分:0)

按照下面的快照获取弹出窗口中的文字

Click the pop-up href

See the text the popup text is on the this page also, to extract only the text shown on popup simply use this class and display the contents

当您点击链接href时,打开一个新页面,其中包含相同的文本和红色字体,这是您需要的文本,因为它是弹出文本,现在您只需使用

String Href=Scomment.attr("href");
Document doc=Jsoup.connect(Href).get();
Element element= doc.getElementById("p101");
String dialogtext=element.text();

这是你问题的解决方案。 希望它能帮助你