2011-10-31 82 views
0

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

任何人都知道任何脚本来解析只有从rdf文件的URL?

+0

您可以加入一些更多的细节?该文件的示例将会有所帮助。 – drnewman

+0

@drnewman:如果你对这个文件有所了解:http://rdf.dmoz.org/rdf/archive/2004-01-05/kt-content.rdf.u8.gz 这是一个rdf文件的样本我只对网址感兴趣。 – Maxwell

+0

@flesk已经给出了很好的答案,尽管使用for循环可能更习惯于使用。但是用Perl TIMTOWTDI。 – drnewman

回答

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的内容打印到文本文件中。

2

几种流行的SemWeb API(Jena,Sesame和dotNetRDF)都为RDF文件提供了完整的流媒体API,因此您可以编写一个自定义数据处理程序,只处理生成的URI并丢弃其余部分“T感兴趣的

你也许可以做到用Perl的东西哈克,它可能会更快,但它可能不是特别如果RDF使用哪些需要解决的问题

1

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

选项2.使用下面的链接,找到工具来提取网址,RDF转储文件

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