Thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen?
(47 answers)
Opened by vitopetre at 2010-04-11 23:27
2010-04-12T00:28:11 vitopetre Ein anderes Modul, über das man hier nachdenken könnte, wäre ![]() Kleines Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 use 5.010; use strict; use warnings; use URI; use XML::LibXML; # Global data my $feed_url = URI->new('http://www.dlib.org/rss/dlib.rss'); my %namespaces = ( rss => 'http://purl.org/rss/1.0/', rdf => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' ); # XML/HTML parser setup my $parser = XML::LibXML->new(); $parser->recover_silently(1); # XPath setup my $xpath = XML::LibXML::XPathContext->new(); while (my ($prefix, $url) = each %namespaces) { $xpath->registerNs($prefix, $url); } # Load feed my $feed = $parser->parse_file("$feed_url") or die 'Could not load feed'; # Find all items foreach my $item ($xpath->findnodes('/rdf:RDF/rss:item', $feed)) { my ($title, $description) = map { $xpath->findvalue("./$_/text()", $item); } qw/rss:title rss:description/; if (defined($title) && defined($description)) { say '#' x 72; say "Title: $title"; say "Description: $description"; # Determine URL of page relative to feed my $page_url = URI->new_abs($xpath->findvalue('./rss:link/text()', $item), $feed_url); if (defined($page_url)) { say "Page: $page_url"; # Load page my $page = $parser->parse_html_file("$page_url") or die "Could not load page: $page_url"; # Find all links on the page foreach my $anchor ($xpath->findnodes('//a[@href]', $page)) { my $link = URI->new_abs($anchor->getAttribute('href'), $page_url); say "Link: $link" if (defined($link)); } } } } When C++ is your hammer, every problem looks like your thumb.
View full thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen? |