jsoup:如何从本网站提取正确的数据

时间:2014-08-27 09:52:58

标签: java jsoup

我正在尝试使用jsoup从西班牙语词典中提取数据。本质上,用户将输入他想要定义为命令行参数的单词,程序将返回格式化的定义列表。以下是我到目前为止所做的事情:

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

public class Main {
    public static void main(String[] args) {
        String[] urls = new String[args.length];
        for(int i=0; i<args.length; i++) {
            urls[i] = "http://www.diccionarios.com/detalle.php?palabra="
                + args[i]
                + "&Buscar.x=0&Buscar.y=0&Buscar=submit&dicc_100=on&dicc_100=on";
            try{
                Document doc = Jsoup.connect(urls[i]).get();
                Elements htmly = doc.getElementsByTag("html");
                String untokenized = htmly.text();

                System.out.println(untokenized);
            }catch (Exception e) {
                System.out.println("EXCEPTION: Word is probably not in this dictionary.");
            }
        }
    }
}

该url数组给出了正确的url,其中定义的信息是。

现在,如果你去try.jsoup网站并使用(例如)这个:http://www.diccionarios.com/detalle.php?palabra=libro&Buscar.x=0&Buscar.y=0&Buscar=submit&dicc_100=on&dicc_100=on,那么我期望返回的是你会得到的。 作为链接并输入html作为CSS查询。我需要这些数据,所以我可以从中对这个定义进行标记。

所以我想我的问题是,我将使用什么方法来获取您在try.jsoup网站上看到的相同数据。非常感谢!

编辑:这是关于解释网址中的数据。我想要的最终结果数据(在这个例子中)是“Conjunto de hojas escritas unidas o cosidas por uno de sus lados y cubiertas por tapasdecartónuotro material。”这是网站上的定义。但是,我注意到在try.jsoup网站上,如果我将html文本放在CSS查询框中,那么结果就是一大堆文本。我的假设是以下两行代码将捕获这一大量文本并将其保存为字符串:

Elements htmly = doc.getElementsByTag("html");
String untokenized = htmly.text();

然而,当我打印未标记时的输出是这样的:“UsuarioClave¿Olvidastetu clave?CondicionesPrivacidadVersióncompleta©2011 Larousse Editorial,SL。”所以我的问题是,如何获取try.jsoup网站上发现的大量文本的字符串数据?

编辑:我在这里遵循了问题的建议:Jsoup - CSS Query selector issue (?)并且效果很好。

0 个答案:

没有答案