スペースモラトリアムノカミサマ

日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)

最近の TrackBack:
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|06|07|08|09|10|
2011|01|02|03|07|10|11|
2012|02|03|04|07|08|09|
2013|01|06|07|
2014|02|08|09|11|
2015|09|
2016|01|05|
2017|07|
2018|05|07|
2019|07|
2020|08|09|10|12|
2021|05|
2022|03|

2011/03/27

_ [Twitter][Perl] Togetter にまとめられた内容を TSV 化する Perl スクリプト

Togetter にまとめられたツイートを Excel で加工したくなったが、Togetter 自身には CSV 等でエクスポートする機能はないようだったので、スクリプト書いた。

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';
use LWP::UserAgent;
use HTML::TreeBuilder;
 
my $url = shift or die;
 
my $ua = new LWP::UserAgent;
$ua->env_proxy;
my $res = $ua->get($url) or die;
my $content = $res->decoded_content or die;
 
my $tree = new HTML::TreeBuilder;
$tree->parse($content) or die;
 
print join("\t", 'Date', 'User', 'Tweet'), "\n";
foreach my $item_tree ($tree->look_down('class' => 'list_item')) {
	my $tweet = $item_tree->look_down('class', 'tweet')->as_text;
	my $user = $item_tree->look_down('class', 'status')->look_down('_tag', 'a')->as_text;
	my $date = $item_tree->look_down('class', 'status')->look_down('_tag', 'span')->as_text;
	print join("\t", $date, $user, $tweet), "\n";
}

以上を togetter2tsv.pl として保存したうえ、

perl togetter2tsv.pl http://togetter.com/li/xxxxxx > result.txt

という感じで使う。