0

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

交叉引用

正如您所看到的,如果您单击链接,我会进入一个交叉引用站点,该站点告诉我我可以从 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."));

那么问题是我不明白交叉引用网站如何知道我在寻找什么文章。因为如果我点击那里的 IEEE Xplore 链接,它看起来像这样:

IEEE Xplore

而且好像没有使用DOI来查找文章,还是我错过了什么?我如何告诉我的程序通过 URL 找到关于 IEEE Xplore 的文章?

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

4

0 回答 0