Twitter search api
Net::Twitterを使ってTwitter search APIを出力する
環境 windows xp sp3 lenovo s10e(netbook)
(ppmからconfig::pitがインストールできないのでログイン情報はそのまま)
#!/usr/bin/perl use strict; use warnings; use Encode; use Encode::Guess qw/ shiftjis euc-jp 7bit-jis utf8 /; use Net::Twitter; my $username ='username'; #username my $pass = 'password'; #password my $twit = Net::Twitter->new( username => $username, password => $pass, ); my $query = 'twitter'; #検索ワード:今回は'twitter' my $response = $twit->search($query); my @lines; while ( my ($key, $value) = each %{ $response } ){ print $key."::".$value,"\n"; }
出力
page::1
query::twitter
completed_in::0.031903
refresh_url::?since_id=2813960057&q=twitter
next_page::?page=2&max_id=2813960057&q=twitter
results_per_page::15
max_id::2813960057
results::ARRAY(0x2bafb2c)
since_id::0
results 出力
my $twit = Net::Twitter->new( username => $username, password => $pass, ); my $query = 'twitter'; my $response = $twit->search($query); my @lines; foreach my $key ( @{ $response->{results} } ){ while ( my ($res_key , $res_val) = each %{ $key } ){ print $res_key."::".$res_val,"\n"; } }
出力
15件出力されるが1件分
source::<a href="TweetMeme">http://tweetmeme.com">TweetMeme
Use of uninitialized value in concatenation (.) or string at twitter_search_hash
.pl line 23.
to_user_id::
created_at::Fri, 24 Jul 2009 07:08:50 +0000
Wide character in print at twitter_search_hash.pl line 23.
text::RT @tweetmeme Twitter 101 for Business 窶・A Special Guide http://cli.gs/u
LA2z
profile_image_url::http://s3.amazonaws.com/twitter_production/profile_images/329
564050/avatar_3714_normal.jpg
from_user_id::30879573
id::2814645841
iso_language_code::en
from_user::bea3300
resultsの中の任意の値を配列に収める
今回はtext, id , userを配列に収める。
my $twit = Net::Twitter->new( username => $username, password => $pass, ); my $query = 'twitter'; my $response = $twit->search($query); my @lines; foreach my $key ( @{ $response->{results} } ){ my $text = decode('Guess', $key->{text} ); my $id = $key->{id}; my $user = $key->{from_user}; push @lines, ( join(":::", $user, $id, $text ) ); } for (@lines) { print $_,"\n"; }
出力は
user:::id:::text
で15件出力される。