0

我正在尝试创建一个在 Internet 上找到的数字对象标识符 (DOI) 数据库。

通过手动手动搜索CommonCrawl索引服务器,我获得了一些有希望的结果。

但是我希望开发一个程序化的解决方案。

这可能导致我的过程只需要读取索引文件而不是底层的 WARC 数据文件。

我希望自动化的手动步骤是:-

1)。对于每个CommonCrawl当前可用的索引集合:

2)。我搜索...“ Search a url in this collection: (Wildcards -- Prefix: http://example.com/* Domain: *.example.com)”例如link.springer.com/*

3)。这将返回近 6MB 的 json 数据,其中包含大约 22K 的唯一 DOI。

如何浏览所有可用CommonCrawl索引而不是搜索特定 URL?

通过阅读 CommonCrawl 的 API 文档,我看不到如何浏览所有索引以提取所有域的所有 DOI。

更新

我找到了这个示例 java 代码https://github.com/Smerity/cc-warc-examples/blob/master/src/org/commoncrawl/examples/S3ReaderTest.java

这显示了如何访问常见的爬网数据集。

但是,当我运行它时,我收到了这个异常

"main" org.jets3t.service.S3ServiceException: Service Error Message. -- ResponseCode: 404, ResponseStatus: Not Found, XML Error Message: <?xml version="1.0" encoding="UTF-8"?><Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>common-crawl/crawl-data/CC-MAIN-2016-26/segments/1466783399106.96/warc/CC-MAIN-20160624154959-00160-ip-10-164-35-72.ec2.internal.warc.gz</Key><RequestId>1FEFC14E80D871DE</RequestId><HostId>yfmhUAwkdNeGpYPWZHakSyb5rdtrlSMjuT5tVW/Pfu440jvufLuuTBPC25vIPDr4Cd5x4ruSCHQ=</HostId></Error>

事实上,我尝试读取的每个文件都会导致相同的错误。这是为什么?

他们的数据集正确的常见抓取 uri 是什么?

4

2 回答 2

2

一年多以来,数据集位置发生了变化,见公告。但是,许多示例和库仍然包含旧指针。您可以访问回溯至 2013 年的所有爬网的索引文件s3://commoncrawl/cc-index/collections/CC-MAIN-YYYY-WW/indexes/cdx-00xxx.gz- 替换为爬YYYY-WW网的年份和周数,并扩展xxx到 000-299 以获取所有 300 个索引部分。新的爬网数据在Common Crawl 组上公布,或阅读有关如何访问数据的更多信息。

于 2017-07-28T08:23:15.200 回答
1

要使示例代码正常工作,请将第 24 行和第 25 行替换为:

String fn = "crawl-data/CC-MAIN-2013-48/segments/1386163035819/warc/CC-MAIN-20131204131715-00000-ip-10-33-133-15.ec2.internal.warc.gz";
S3Object f = s3s.getObject("commoncrawl", fn, null, null, null, null, null, null);

另请注意,commoncrawl 组有一个更新的示例

于 2017-07-28T13:06:11.110 回答