Web::Scraper はいたれりつくせりの仕掛けが仕込んであって、便利ですね。私が、割と良く使っている機能は以下 2 つです。 process の第一引数に、CSS セレクタだけでなく、XPath も指定できます。ただし、XPath を指定するときは先頭を必ずスラッシュ(/)で始めなければいけません。 process の第二引数以降の、値をどこから取得するかを指定する部分に、コード・リファレンスを置くこともできます。これを使うと、DOM ツリー中の値を加工して抽出することができます。 具体例として、デイリーポータルZのアーカイブ一覧の中からべつやくれいさんのエントリを抽出してみることにします。まず、アーカイブ・ページのエントリ部分を取り出してやると、こうなっています。 <TD width="580" valign="top" class="tx12px"> <P> <B><FONT c
クローリング楽しいですよね! perlで高速にクロールしたいのであればGunghoなど使うのがいいかもしれませんが、 基本手軽にやりたいことが多いので WWW::Mechanize+Web::Scraper という組み合わせでクロールするのが定番でした。 しかしたまたま Scrappy を知り、 少し触ってみたところすごくいいのではないか!?と思い 記事にしてみました。*1 基本系(crawlコマンドを利用する場合) my $scrappy = Scrappy->new; $scrappy->crawl('1.クロールするルートURL', '2.URLにマッチするパス' => { '3.コンテンツにマッチするxpath or CSSセレクタ' => sub { my ($self, $item) = @_; # 4.キューに追加 $self->queue->add($item->{href
もとは、androidのN2TTSやVocalizerという読み上げアプリ用に作ったユーザー辞書(読み替え単語集)です。 最近のTTSエンジンは十分に賢いので、このユーザー辞書を使うと、かえって読み上げ精度や抑揚が悪くなるかも。 (例:「青瓦台」は、googleテキスト読み上げでは「セイガダイ」と正しく読めるが、マイクロソフトのHarukaでは「アオガワラダイ」と読んでしまうなど、TTSエンジンによって得意・不得意がある) ベクターのフリー辞書などを転用して、時代小説などに頻出する地名や人名などを登録してみました。 TabSpeechというChromeプラグインでユーザー辞書(読み替え)のデータベースを指定できるので、このデータベースも利用できると思います。 ★ユーザー辞書を充実させるため、単語追加歓迎します。 ただ、隆盛(人名でのタカモリ、普通名詞のリュウセイ)とか意味によって読み方が変
Coreの簡易リファレンス。Coreは要素を参照したり、相対位置から周りのノードを参照したり、要素を生成するといった部分。主に利用するであろうプロパティやメソッドはカバーしているつもりですけど、これも入れとけってのあったら教えてください。 このあたりは地味で使いづらくその上理解しにくいという残念な部分。ふと忘れたときに使う個人的なものですが、慢性jQuery拒絶症候群な人よかったらどうぞ。それにしても暑い。ガリガリ君おいしいね。 DOMとは。 Document Object Model (DOM) は、HTML および XML ドキュメントのための API です。これはドキュメントの構造的な表現を提供し、内容や表示形態の変更を可能にします。端的に言えば、Web ページをスクリプトやプログラミング言語とつなぐような機構です。 https://developer.mozilla.org/ja/
Over in the use Perl journals, Tatsuhiko Miyagawa wondered whether CSS selectors can be translated to XPath – which, of course, they can. Like him, however, I discovered that there isn’t any easily found table of equivalents that shows how selectors map to queries (though quite a lot of working Javascript to do such a conversion). Maybe that’s because to people versed in XPath, it’s really quite s
HTML::TreeBuilder の ->lookup だの ->find だのを覚えるのは、学習の効率がよくない。つぶしがきかないので、もっと一般的な CSS Selector や XPath などを覚えて、それをつかった方がお得であるといえる。 HTML::TreeBuilder で XPath を利用するには、HTML::TreeBuilder::XPath をインストールすればよく、これは pure perl なので容易に利用できる。 my $tree = HTML::TreeBuilder::XPath->new; $tree->parse($content); my @items = $tree->findnodes(q{//*[@id='topicsfb']//li}); print $_->as_text."\n" for @items; とすればよい。 XPath はむ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く