想使用DOI访问特定文章

时间:2016-01-08 13:05:20

标签: java url hyperlink doi

我目前正在使用一个用于抓取信息网站并将其存储在数据库中的程序。这个程序设置为从IT领域获取文章,我得到了我曾经想要找到的特定期刊列表。 它就像我从数据库中的DOI一样,我们从一个名为DBLP的站点获得了这个,并且通过这个DOI,我将建立一个连接并将我重定向到我可以找到该文章的站点。 现在我的问题是我得到了这个DOI:

Crossref

正如您所看到的,如果您点击链接,我会访问一个crossref网站,该网站告诉我,我可以从2个不同的位置进行选择以查找此文章。 因为我只有一个翻译器可以抓取其中一个网站,我想去IEEE Xplore网站。 现在的问题是我不知道如何告诉我的程序去IEEE Xplore网站。 如果你查看我现在的代码,它看起来像这样:

    public static void Scan(Article article) throws Exception
{
    //When running program, creates a error text-file inside java Project folder
    File file = new File("errorlogg.txt");
    FileWriter fileWriter = new FileWriter(file, true);

    // if file doesn't exists, then create it
    if (!file.exists()) 
    {
        file.createNewFile();
    }

    //Setting up an URL HttpURLConnection given DOI
    URL urlDoi = new URL (article.GetElectronicEdition());

    //Transform from URL to String
    String doiCheck = urlDoi.toString();

    //Check what Journals
    String JournalsWanted = article.GetJournal();

    //Used to see if DOI changed 
    System.out.println("New DOI: " + urlDoi);

    HttpURLConnection connDoi = (HttpURLConnection) urlDoi.openConnection();

    // Make the logic below easier to detect redirections
    connDoi.setInstanceFollowRedirects(false);  

    String doi = "{\"url\":\"" + connDoi.getHeaderField("Location") + "\",\"sessionid\":\"abc123\"}";

    //Setting up an URL to translation-server
    URL url = new URL("http://127.0.0.1:1969/web");
    URLConnection conn = url.openConnection();

我正在考虑做一些简单的事情,比如如果我发现它不会引导我正确的URL。我想到了这样的事情:

if(doiCheck.startsWith("http://dx."));

问题是我不知道crossref网站如何知道我之后的文章。因为如果我点击IEEE Xplore中的链接,它看起来像这样:

IEEE Xplore

它似乎没有使用DOI来找到这篇文章,还是我想念它?如何告诉我的程序机会URL找到IEEE Xplore上的文章?

如果问题不清楚易懂,我很抱歉,但我会尽力解释我的问题。

0 个答案:

没有答案