我目前正在使用一个程序,该程序用于抓取信息网站并将它们本地存储在数据库中。该程序设置为从 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 链接,它看起来像这样:
而且好像没有使用DOI来查找文章,还是我错过了什么?我如何告诉我的程序通过 URL 找到关于 IEEE Xplore 的文章?
如果问题不是那么清楚易懂,我很抱歉,但我已尽力解释我的问题。