Как извлечь только URL из файла Dmoz ODP (в RDF)

Мне нужны только URL из файла dmoz/ODP. Но файл находится в RDF. Как я могу получить только URL-адреса из файла odp? Я хочу извлечь все URL-адреса в текстовом файле.

Кто-нибудь знает какой-либо скрипт для парсинга только URL-адресов из rdf файла?

3 ответа

Решение

Может быть как то так?

#!/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 в текстовый файл.

Несколько популярных API SemWeb (Jena, Sesame и dotNetRDF) предоставляют полностью потоковые API для файлов RDF, так что вы можете написать собственный обработчик данных, который будет принимать только созданные URI и отбрасывать оставшуюся часть, которая вас не интересует.,

Вы, вероятно, можете сделать что-то взломанное с Perl, и это может быть быстрее, но это может быть не совсем точно, особенно если RDF использует относительные URI, которые необходимо разрешить

Вариант 1. Загрузите dmoz_v3.zip с http://sourceforge.net/projects/dmoz2mysql/files/latest/download. Это скрипт PHP, который используется для автоматического анализа файлов дампа данных DMOZ RDF. Это показывает загрузку файлов, извлечение, очистку, анализ и вставку данных в базу данных MySQL.

Вариант 2. Используйте следующую ссылку, чтобы найти инструменты для извлечения URL-адресов из RDF-файлов дампа.

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

Другие вопросы по тегам