制作从研究论文中提取的参考文献列表并下载它们

时间:2017-06-12 20:36:41

标签: java arraylist

我需要在研究论文中列出参考文献。我从pdf中提取并将它们全部存储在txt文件中。问题是当我运行以下代码时,它似乎在列表中,在控制台中它们只在一行中。我不能分享输出,因为stackoverflow不会让我。我需要帮助正确存储它们。 代码

制作清单的代码:

Scanner s = new Scanner(new File("D:\\ref.txt"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
    list.add(s.next());

}
System.out.println("LIST:" +list);
s.close();   

输出:

  

列表:[参考文献,:,[1],J.,Bailey ,, C.,Zhang ,, D.,Budgen ,, M.,Turner ,, and,S.,Charters ,,“搜索,引擎,重叠,:,做,他们,同意,或不同意?“,在,第二,国际,研讨会,在,实现,循证,软件,工程,(REBSE,'07),,, 2007 ,, p 。,2。,[在线]。,可用:,http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=42732,74,[2],K。,Yang,和L.,I。,Meho ,,“引用,分析:,A,比较,谷歌,学者,scopus ,,和,网络,科学,“,在,第69,年度,会议,,美国,社会,为,信息,科学,和技术,奥斯汀,(美国),, 2006 ,, pp。,3, - ,8,和+10引用,我不允许分享

完成列表后,我需要在谷歌上运行此列表,以便下载列表中的所有文件。我有下载的代码,但它只适用于一篇论文。我想下载我刚刚制作的完整列表。 代码:

try {
   //var a= doc.replace(" ","+");

    Document doc = Jsoup
            .connect("https://scholar.google.com.pk/scholar?hl the paper I want")
            .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36")
            .get();

    String title = doc.title();
    System.out.println("title : " + title);


    Elements links = doc.select("div.gs_ggsd").select("a[href]");
    //Element  = doc.select("div.gs_ggs gs_fl").first();

    for (Element link : links) {
        //System.out.println("\nlink : " + link.attr("href"));
        URL website = new URL(link.attr("href"));
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("D:\\paper.pdf");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
} 
       // System.out.println("text : " + link.text());
    }

1 个答案:

答案 0 :(得分:0)

尝试逐行抓取。 向我们展示尝试以下代码时获得的输出

    Scanner s = new Scanner(new File("D:\\ref.txt"));
    ArrayList<String> list = new ArrayList<String>();
    while (s.hasNextLine()){
        list.add(s.nextLine());
    }

    for(int i = 0; i < list.size(); i++)
    {
        System.out.println(i + ":" +list.get(i));
    }

    s.close();