【问题标题】:Saving scraped data to file将抓取的数据保存到文件
【发布时间】:2019-11-08 10:57:43
【问题描述】:

我正在使用 Jsoup 从多个网页中抓取数据,如何在不覆盖之前被抓取的网页的情况下将抓取的数据保存到文件中

我尝试在堆栈溢出和 Jsoup 文档上搜索解决方案。

        int j = 0;
        int i = 0;
        String URL = ("https://www.ufc.com/athletes/all?gender=All&search=&page="+j);
        Document doc = Jsoup.connect(URL).userAgent("mozilla/70.0.1").get();
        Elements temp = doc.select("div.c-listing-athlete__text");



        for (Element fighterList:temp) {
            i++;
            System.out.println(i + " " + fighterList.getElementsByClass("c-listing-athlete__name").first().text());
        }



        j++;
        URL = ("https://www.ufc.com/athletes/all?gender=All&search=&page="+j);
        doc = Jsoup.connect(URL).userAgent("mozilla/70.0.1").get();
        temp = doc.select("div.c-listing-athlete__text");

        for (Element fighterList:temp) {
            i++;
            System.out.println(i + " " + fighterList.getElementsByClass("c-listing-athlete__name").first().text());
        }

【问题讨论】:

  • 您不会显示实际写入文件的代码,但显而易见的是为每个页面创建一个新文件名,可能基于您刚刚下载的内容(例如athletes1 .athletes2等,视页码而定)
  • 和“meta-java”方法:使用“附加管道”:java MyClass >> out.txt(从命令行调用时,linux + windows!),这将“管道”所有@987654326 @'s into out.txt> 替换文件,>> 附加到它(在每个程序运行时))...stackoverflow.com/q/5342832/592355

标签: java jsoup


【解决方案1】:

如果您需要从代码中保存数据,只需检查一下,也许它可以帮助您:

int i = 0;
int pagesNumber = 10;
String URL = "";
Document doc = null;
Elements temp = null;

try {

    // Create file 
    FileWriter fstream = new FileWriter(System.currentTimeMillis() + "out.txt");
    BufferedWriter out = new BufferedWriter(fstream);

    for (i=0; i<pagesNumber; i++) {

        URL = ("https://www.ufc.com/athletes/all?gender=All&search=&page="+i);
        doc = Jsoup.connect(URL).userAgent("mozilla/70.0.1").get();
        temp = doc.select("div.c-listing-athlete__text");

        for (Element fighter : temp) {
            out.write(i + " " + fighter.getElementsByClass("c-listing-athlete__name").first().text());
        }
    }

    //Close the output stream
    out.close();

} catch (Exception e) { // Catch exception if any
    System.err.println("Error: " + e.getMessage());
}

希望对你有帮助:)

【讨论】:

  • 谢谢你,这对我有很大帮助,我一直在尝试循环页面迭代,我的 uni 课程已经 7 周了,还有很多东西要学
猜你喜欢
  • 2017-05-01
  • 2020-10-11
  • 2021-11-23
  • 2022-01-17
  • 2020-11-04
  • 2022-11-27
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多