この日記は 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 | ||