Home > Perl Archive

[ 1  2  3  4  5  6  7  8  9  10  11 >> ]

Perl Archive

WWW::AppStore::Scraper::Lite

メンテするのも面倒なので放置中の AppStore::Scraper 、今のところ動いているけど、動かなくなった時なんとかするのも面倒なので、取り急ぎ、公開 API で取得できる情報だけに割り切った WWW::AppStore::Scraper::Lite 作った

AppStore::Scraper との違いは

  • ☆ 1 つが何人とか、細かい数値は取得できない。平均レートとレート付けした 合計人数のみ
  • 順位取得できない
  • レビューのタイトル取得するようにした (これは AppStore::Scraper にも必要だな)

ダウンロードは GitHub からどうぞ
p5-www-appstore-scraper-lite

それにしても、最近自鯖の Git だけ触っててすっかり忘れてるのに、それでもなんとかなる GitHub はステキですね
この規模のプログラムな Gist とかでいいんですかね。もうちっと学ばなあきませんね

use WWW::AppStore::Scraper::Lite;
use Data::Dumper;

my $obj = WWW::AppStore::Scraper::Lite->new(wait => 5);

my $info = $obj->app_info(
			  app => ['404732112'],
			  store => ['jp','us'],
			  review_number => 1,
			 );

print Dumper $info;

とすると、結果はこんな感じ

$VAR1 = {
          '404732112' => {
                           'jp' => {
                                     'review_number' => 1,
                                     'store' => 'jp',
                                     'reviews' => [
                                                    {
                                                      'date' => '2012-11-05',
                                                      'title' => "......",
                                                      'message' => "......"
                                                    }
                                                  ],
                                     'store_code' => 143462,
                                     'genre_id' => 6002,
                                     'app_name' => "Sleipnir Mobile - Web \x{30d6}\x{30e9}\x{30a6}\x{30b6}",
                                     'store_name' => 'Japan',
                                     'artist_id' => 318578225,
                                     'ratings' => {
                                                    'userRatingCount' => 1727,
                                                    'averageUserRatingForCurrentVersion' => '4.5',
                                                    'averageUserRating' => '3.5',
                                                    'userRatingCountForCurrentVersion' => 4
                                                  },
                                     'price' => '0',
                                     'genre_name' => 'Utilities'
                                   },
                           'us' => {
                                     'review_number' => 1,
                                     'store' => 'us',
                                     'reviews' => [
                                                    {
                                                      'date' => '2012-09-08',
                                                      'title' => '......',
                                                      'message' => '.......'
                                                    }
                                                  ],
                                     'store_code' => 143441,
                                     'genre_id' => 6002,
                                     'app_name' => 'Sleipnir Mobile - Web Browser',
                                     'store_name' => 'United States',
                                     'artist_id' => 318578225,
                                     'ratings' => {
                                                    'userRatingCount' => 220,
                                                    'averageUserRatingForCurrentVersion' => undef,
                                                    'averageUserRating' => '4.5',
                                                    'userRatingCountForCurrentVersion' => undef
                                                  },
                                     'price' => '0',
                                     'genre_name' => 'Utilities'
                                   }
                         }
        };

Google Play のランキングとかレビューとかを取得する

Google Play (旧 Android Market) のサイトから、ランキングとかレビューとかをスクレイピングする Perl ライブラリ「WWW::GooglePlay::Scraper」
AppStore::Scraper の Google Play 版です
仕事で投入した後、問題なく動いてるようなので、公開します
GitHub からどうぞ
p5-www-googleplay-scraper

use WWW::GooglePlay::Scraper;
use Data::Dumper;

my $obj = WWW::GooglePlay::Scraper->new(wait => 5);

my $info = $obj->app_info(
			  app => ['jp.co.fenrir.android.sleipnir'],
			  store => ['ja','en'],
			 );

print Dumper $info;

とやると、こんな結果が返ってきます

Continue reading

github 今さら使い始めましたよ

とりあえず、CPAN においてるやつは github へ
https://github.com/higemaru/
ソースコード手元に残ってるやつは、ボチボチと公開していきます

それにしても、github はギットハブで、gif はジフなんだね

とかいうことよりも、作らなあきませんね。最近なんも作ってないわ

AppStore::Scraper アップデート

ちょっと前、 Search API からユニコードエスケープされず生 UTF8 が返ってくるようになった & iTunes Store だけじゃなくて Mac App Store の情報も欲しい

。。。ってことで、仕事としてやる時間をもらって修正したので、こっちのも修正しておく
なんか、ごちゃっとした XML だけで泣きそうだったところに JSON やら HTML やら加わって、カオスだな。この手の (App Store のランキング取得したりする) ライブラリを一時期に比べて見かけなくなったのも納得
カオスになったついでに、レート毎の件数もそのうち再実装するかもしれません

使い方。今までと変わらんけど、ident として 'mac' を指定できるようにした

use AppStore::Scraper;
use Data::Dumper;

my $obj = AppStore::Scraper->new(wait => 5);
my $info = $obj->app_info(
                          app => ['444303913'],
                          store => ['jp','us'],
                          lang => 9,
                          review_number => 1,
                          review_order => 4,
                          ident => 'mac',
                         );

warn Dumper $info;

Continue reading

AppStore::Scraper アップデート

この前の iTunes のアップデートのタイミングで、また AppStore::Scraper が動かなくなった
スクレイピングはこれがあるからなぁ。。。。仕方ないので adhoc に書きなおした
今までと同じように使えるけど、レート毎の件数(☆ 1 つが何件とか)がとれなくなってます
そのかわりってわけじゃないが、

  • 件数とアベレージは取得できる
  • iPhone でも iPad でも動くアプリは、両方のランキング取得できる

今回から Search API 使ってます。今後はスクレイピングは最小限にして、Seach API でとれるものをベースに書き換える予定。。。だが、動いてるうちは書き換えんやろなぁ

前と変わらないけど、使い方

use AppStore::Scraper;
use Data::Dumper;

my $obj = AppStore::Scraper->new(wait => 5);
my $info = $obj->app_info(
                          app => ['404732112'],
                          store => ['jp'],
                          lang => 9,
                          review_number => 100,
                          review_order => 4
                         );

warn Dumper $info;

とかやると

$VAR1 = {
          '404732112' => {
                           'jp' => {
                                     'review_number' => 100,
                                     'total_rank' => 38,
                                     'store_code' => 143462,
                                     'app_name' => 'Sleipnir Mobile - Web Browser',
                                     'genre_rank' => 4,
                                     'store_name' => 'Japan',
                                     'artist_id' => 318578225,
                                     'genre_name' => 'Utilities',
                                     'ranks' => {
                                                'genre_rank_ipad' => 1,
                                                'total_rank_ipad' => 3,
                                                'total_rank_iphone' => 38,
                                                'genre_rank_iphone' => 4
                                              },
                                     'lang' => 9,
                                     'reviews' => [
						   {
                                                    'date' => '22-Apr-2011',
                                                    'message' => "....."
						   },
 .
 .
 .
                                                ],
                                     'ident' => 'both',
                                     'genre_id' => 6002,
                                     'review_order' => 4,
                                     'ratings' => {
                                                  'userRatingCount' => 213,
                                                  'averageUserRatingForCurrentVersion' => '3.5',
                                                  'averageUserRating' => '3.5',
                                                  'userRatingCountForCurrentVersion' => 34
                                                },
                                     'price' => '0'
                                   }
                         }
        };

こんな感じ

ソースコードは長いので、続きからどうぞ

Continue reading

AppStore::Scraper アップデート

指定した App がその国のストアで公開されていなかったら何もせずに抜ける処理をいれて、ついでに、エラーメッセージに国番号入れるようにした

こちらからどうぞ

AppStore::Scraper アップデート

たぶん世界中でワシしか使ってなくて、しかもワシも仕事で特定の環境でしか使ってなくて、でも公開してしまったものは仕方ないんでアップデート。こんなことなら仕事で作ればよかったわ

レビューページをちゃんとページめくりして全件取得できるようにした。。。が、並べ替えの指定がアホアホ

#     1..Most Helpful
#     2..Most Favourable
#     3..Most Critical
#     4..Most Recent

これをどう指定させるかねぇ

つうわけで、差し替えました

AppStore::Scraper アップデート

冬休みの宿題、ギリで間に合った
なんか Cookie にくわせてるんで、面倒やなぁと思ってたんだけど、ランキング取得するだけなら関係なかった (^^;
やっぱりちゃんと検証せなあきませんね

つうわけで、差し替えました

冬休みの宿題=自作のいろんなものをアップデートする

とりあえず Text::HikiDoc と Appstore::Scraper あたりを

WWW::Mechanize::Plugin::Web::Scraper

気が向いた時に追っかけるための備忘録

楽しようと思って WWW::Mechanize::Plugin::Web::Scraper 試しに使ってみたが、なんか scrape が空っぽな例があって、追っかけるのも面倒なので、WWW::Mechanize と Web::Scraper で分業して解決

それにしても、何度使ってもどっちも神だな。これのおかげで「楽するためなら死んでもいい」教団の人たちが命を散らさずにすんでいるのだな

[ 1  2  3  4  5  6  7  8  9  10  11 >> ]

Home > Perl Archive

Feeds

Return to page top