Tôi dường như đang gặp sự cố hoặc sử dụng HTML::HTML5::Microdata::Parser
hoặc RDF::Query
hoặc với ngữ nghĩa SPARQL và ngữ nghĩa. Tôi quan tâm đến bit này từ một số news site page.truy vấn siêu dữ liệu từ trang HTML có SPARQL không trả về gì
<div class="authors">
Autoři: <span itemprop="author" itemscope itemtype="http://schema.org/Person"><a rel="author" itemprop="url" class="name" href="http://vice.idnes.cz/novinari.aspx?idnov=2504" ><span itemprop="name">Zdeňka Trachtová</span></a></span>
,
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><a rel="author" itemprop="url" href="http://vice.idnes.cz/novinari.aspx?idnov=3495" ><span itemprop="additionalName">san</span></a><span class="h" itemprop="name">Sabina Netrvalová</span></span>
</div>
Đây là mã thử nghiệm của tôi:
#! env perl
use strict;
use Data::Dumper;
use HTML::HTML5::Microdata::Parser;
use RDF::Query;
use IO::Handle;
use LWP::Simple;
STDOUT->binmode(":utf8");
STDERR->binmode(":utf8");
my $htmldoc = LWP::Simple::get(
"http://zpravy.idnes.cz/zacinaji-zapisy-do-prvnich-trid-dn3-/domaci.aspx?c=A160114_171615_domaci_zt");
die "Could not fetch URL. [email protected]" unless defined $htmldoc;
my $microdata = HTML::HTML5::Microdata::Parser->new (
$htmldoc, $ARGV[0],
{auto_config => 1, tdb_service => 1, xhtml_meta => 1, xhtml_rel => 1});
print STDERR "microdata->graph:\n", Dumper($microdata->graph), "\n";
my $query = RDF::Query->new(<<'SPARQL');
PREFIX schema: <http://schema.org/>
SELECT *
WHERE {
?author a schema:Person .
}
SPARQL
my $people = $query->execute($microdata->graph);
print STDERR "authors from RDF:\n", Dumper($people), "\n";
while (my $person = $people->next) {
print STDERR "people: ", $person, "\n";
}
Các tùy chọn cho HTML::HTML5::Microdata::Parser
chỉ là nỗ lực cuối cùng của tôi để làm cho công việc này. (Tôi đã cơ bản không biết mình đang làm gì.)
Bất kỳ ý tưởng nào về cách tạo tác phẩm này và lấy tên của tác giả?
Cuối cùng, tôi đã sử dụng 'HTML :: Microdata' thay thế. Nó hoạt động cho những gì tôi muốn làm với nó. Tuy nhiên, tôi vẫn quan tâm đến việc nghe về cách tạo ra công cụ 'HTML :: HTML5 :: Microdata :: Parser' và SPARQL. – wilx