twitter APIを使って検索、リンクをパースするperlスクリプトを作った。

アメリカ人はperl、pythonがメインなので、最近はもっぱらperlを書くことが非常に多い。
特に、アメリカ人は日本と違ってマニュアルで行わずなんでもすぐスクリプト化してどんどん効率あげていこうというマインドが強くあるので、インフラ運用の自分でもめっちゃコード書いている。

せっかく、perlのスキルがついたので、なんかAPIでも利用したサイトでも作ろうととりあえず、twitterのAPIを使ったスクリプトを書いてみた。


Net::Twitter::Liteを利用

cpanでモジュールをインストールして、あとは、以下のコードの通り

[perl]
#!/usr/bin/perl

use strict;
use warnings;
use Net::Twitter::Lite::WithAPIv1_1;
use Data::Dumper;
use utf8;
use Encode;

my %CONSUMER_TOKENS = (
consumer_key => ‘*******’,
consumer_secret => ‘*******’,
);

my $ACCESS_TOKEN = ‘************’;
my $ACCESS_TOKEN_SECRET = ‘******’;

my $twi = Net::Twitter::Lite::WithAPIv1_1->new(%CONSUMER_TOKENS);

$twi->access_token($ACCESS_TOKEN);
$twi->access_token_secret($ACCESS_TOKEN_SECRET);

my $search_str = ‘検索したい言葉’;
my $res = $twi->search(
{
q => $search_str,
lang => ‘ja’,
}
);

#レスポンスをダンプ(必要であれば)
#print Dumper $res;
my @URL;
my $test = $res->{statuses};
foreach my $line (@$test){
@URL = $line->{text};
foreach my $url (@URL){
if ($url =~ /(http:\/\/\S+)(?:\s||\w)/i){
      print encode(‘UTF-8’,$1."\n");
          }
#print encode(‘UTF-8’,$url."\n");
}
}
[/perl]
あとは、適当に、名前をつけて以下を打てばOK。
[bash]
peal search.pl
[/bash]

http://**
http://**
http://**
と表示されるはず。
上記はツイートを検索した文字から探して、ツイートにURLリンクがあった場合にそれを取得できる。
次は、Mechanizeでリンクにアクセスして、画像を取得してみようかなと。

その他

ぐぐってみると、API1.1対応のためにpmファイルを変更する必要があるみたいだけど、
自分の場合は、Net::Twitter::Lite::WithAPIv1_1を利用することで自分のやりたいことは問題なく表示されたので、これでよしとした。


by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *