...pudding - diary

この日記は https://yapud.hatenablog.com/ に引っ越し中


2013-02-20

_ [Software] Twitter の特定の status id に favorite が何個ついてるか調べるよ perl で

Twitter の status(個別ツイート)の URL を与えたらそこにいくつ favorite がついてるか数を返すのを perl でこさえてみました。とりあえず動けばいいだけのモノです。

#!/usr/bin/perl
#
use strict;
use warnings;
use LWP::UserAgent;
use HTML::TreeBuilder;
#
my $statusurl = 'https://twitter.com/moriya_jp/status/150528483121041408';
print &htmlcount($statusurl) . "\n";
#
exit;
#
# HTMLからfavoriteの数を取り出す
sub htmlcount {
    my ($url) = @_;
    my $favcount = 0;
    my $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";
    # LWPでアクセス
    my $ua = LWP::UserAgent->new('agent' => $user_agent);
    my $res = $ua->get($url);
    my $content = $res->content;
    # HTML::TreeBuilderで解析
    my $tree = HTML::TreeBuilder->new;
    $tree->parse($content);
    # favoriteの数テキストだけ抜き出す
    if ( $tree->find_by_attribute('class', 'request-favorited-popup') ){
        $favcount =  $tree->look_down('class', 'request-favorited-popup')->find('strong')->as_text;
    }
    return $favcount;
}

API 経由で~みたいなオシャレなことはしていません。LWP で HTML をもってきて HTML::TreeBuilder にパースしてもらって目的のテキストを取り出しているだけ。ちからわざ。


2013年
2月
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
Twitter : @moriya_jp