如何仅从Dmoz ODP文件中提取URL(在RDF中)

时间:2011-10-31 20:48:56

标签: perl rdf odp

我只需要dmoz / ODP文件中的URL。但该文件在RDF中。 如何从odp文件中仅获取url? 我想在文本文件中提取所有网址。

任何人都知道要解析rdf文件中的网址的任何脚本吗?

3 个答案:

答案 0 :(得分:2)

也许这样的事情呢?

#!/usr/bin/perl
use strict;
use warnings;

my $file = "kt-content.rdf.u8";
my @urls;

open(my $fh, "<", $file) or die "Unable to open $file\n";

while (my $line = <$fh>) {
    if ($line =~ m/<(?:ExternalPage about|link r:resource)="([^\"]+)"\/?>/) {
        push @urls, $1;
    }
}

close $fh;

然后将@urls的内容打印到文本文件中。

答案 1 :(得分:2)

一些流行的SemWeb API(Jena,Sesame和dotNetRDF)都为RDF文件提供了完整的流API,因此您可以编写一个自定义数据处理程序,该处理程序只会生成所生成的URI并丢弃其他的东西。感兴趣的。

你可以用perl做一些hacky,它可能会更快,但它可能不完全准确,特别是如果RDF使用需要解析的相对URI

答案 2 :(得分:1)

选项1.从http://sourceforge.net/projects/dmoz2mysql/files/latest/download下载dmoz_v3.zip。 这是一个PHP脚本,用于自动解析DMOZ RDF数据转储文件。它具有下载文件,提取,清理,解析和将数据插入MySQL数据库的功能。

选项2.使用以下链接查找从RDF转储文件中提取URL的工具

http://www.dmoz.org/Computers/Internet/Searching/Directories/Open_Directory_Project/Use_of_ODP_Data/Upload_Tools/