当我执行此代码时,来自网站的原始数据正在写入,但它被写成相同内容的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次...
答案 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();