使用Jsoup从页面源中提取单个值

时间:2015-02-02 00:02:51

标签: java selenium jsoup

我需要从网页中提取一个值。该值是每次访问页面时生成的随机数。我不会发布整页源,但包含该值的字符串是:

            <span class="label label-info pull-right">Expecting 937117</span>

“937117”是我在这之后的价值。感谢

更新

这是我到目前为止所得到的:

    Document doc = Jsoup.connect("www.mywebsite.com).get();
    Elements value = doc.select("*what do I put in here?*");

    System.out.println(value);

3 个答案:

答案 0 :(得分:0)

你能不能使用javascript正则表达式语法?如果您知道您感兴趣的元素,请将其从jsoup中提取为字符串$ stuff,然后执行 $ stuff.match(/期待(\ d *)/)[1]

答案 1 :(得分:0)

以下代码段中清楚地描述了所有内容。我在里面创建了一个带有类似SPAN标签的HTML文件。使用Document.select()选择具有您想要的特定类名的元素。

import java.io.File;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Entities.EscapeMode;
import org.jsoup.select.Elements;

public static void main(String[] args) {
    String sourceDir = "C:/Users/admin/Desktop/test.html";
    test(sourceDir);
}

private static void test(String htmlFile) {
    File input = null;
    Document doc = null;
    Elements classEles = null;

    try {
        input = new File(htmlFile);
        doc = Jsoup.parse(input, "ASCII", "");
        doc.outputSettings().charset("ASCII");
        doc.outputSettings().escapeMode(EscapeMode.base);

        /** Find all SPAN element with matched CLASS name **/
        classEles = doc.select("span.label.label-info.pull-right");

        if (classEles.size() > 0) {
            String number = classEles.get(0).text();
            System.out.println("number: " + number);
        }
        else {
            System.out.println("No SPAN element found with class label label-info pull-right.");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

答案 2 :(得分:0)

        public void yourMethod() {

          try {
                Document doc = connect("http://google.com").userAgent("Mozilla").get();
                Elements value = doc.select("span.label label-info pull-right");

              } catch (IOException e) {
                e.printStackTrace();
              }
         }