来自网址的文字,但会被复制3至4次

时间:2015-08-03 08:39:38

标签: java url jsoup

当我执行此代码时,来自网站的原始数据正在写入,但它被写成相同内容的3-4倍...我不知道如何解决这个问题。任何人都可以帮助我...

我使用JSoup ..

public static void main(String a[])
{
    try 
    {
    //URL url=new URL("https://in.yahoo.com/?p=us");
    Document doc = Jsoup.connect("http://www.businessinsider.in/").get();
    Elements contents = doc.select("div") ;


    PrintWriter out = new PrintWriter(new FileWriter("E:/outputtext.txt")); 
    for(Element p : contents) {
        out.print(p.text());
    }
   catch(Exception e)
    {
        e.printStacktrace();
    }
}

网站上的内容会保存在.txt文件中,但内容会在同一个文件中被复制3-4次...

1 个答案:

答案 0 :(得分:1)

使用您的选择器doc.select("div"),您可以获取文档的所有div元素,以及其他div元素中的元素,从而导致重复。

也许你应该区分并只选择你需要的那些。

如果您想获得完整内容,则根本不需要Jsoup解析器。你仍然可以使用Jsoup进行网络访问,但你可以省略这样的解析器:

Connection con = Jsoup.connect("http://www.businessinsider.in/");    
Response res = con.execute();
String rawContent = res.body();
PrintWriter out = new PrintWriter(new FileWriter("E:/outputtext.txt"));
out.print(rawContent);

或者,如果您毕竟使用了解析器,则可以获得body标记而不是div

Document doc = Jsoup.connect("http://www.businessinsider.in/").get();
Element bodyEl = doc.body();
String bodySt = bodyEl.html();