最新論文を読むことを習慣化するために、Google ResearchのLatest PublicationsをRSSリーダーに登録しておこうかなと思ったんだけど、フィードが提供されてないのでplagger+web::scraperでgmailに送るかということでやってみた。が、よくよく見ると(よくよく見なくても)Atomフィードが提供されてた…
でも、せっかく書いたので公開だけしておくことにします。
publications_by_googlers.pl
#! /usr/bin/perl use strict; use warnings; use Web::Scraper; use URI; use YAML; ## get publications list my $url = 'http://research.google.com/pubs/papers.html'; my $scraper = scraper { process "/html/body/div/div[2]/ul/li", 'papers[]' => scraper { process "p", "info" => 'TEXT'; process "//p/a[1]", "link" => '@href'; process "//p/a[1]", "author" => 'TEXT'; }; }; my $res = $scraper->scrape( URI->new($url) ); ## feed and entries my $feed = { title => "Publications by Googlers", link => $url, entries => [], }; for my $paper (@{$res->{papers}}) { # cut off brace $paper->{info} =~ /([^\[\]]+)/; my $entry = { title => $paper->{author}, body => $1, link => $paper->{link}, }; push @{$feed->{entries}}, $entry; } binmode STDOUT, ":utf8"; print YAML::Dump $feed;
publications_by_googlers.yaml
plugins: - module: Subscription::Config config: feed: - url: script:/path/to/script - module: CustomFeed::Script - module: Filter::Rule rule: module: Deduped path: /path/to/db - module: Publish::Gmail config: assets_path: /path/to/assets mailto: your mailto mailfrom: your mailfrom mailroute: via: smtp_tls host: smtp.gmail.com:587 username: your username password: your gmail password
こんな感じにgmailで読めます。