Home > Perl Archive
[ 1 2 3 4 5 6 7 8 9 10 11 > >> ]
Perl Archive
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;
とやると、こんな結果が返ってきます
- Comments: 13
- TrackBack (Close): 0
github 今さら使い始めましたよ
とりあえず、CPAN においてるやつは github へ
https://github.com/higemaru/
ソースコード手元に残ってるやつは、ボチボチと公開していきます
それにしても、github はギットハブで、gif はジフなんだね
とかいうことよりも、作らなあきませんね。最近なんも作ってないわ
- Comments: 16
- TrackBack (Close): 0
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;
- Comments: 0
- TrackBack (Close): 0
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'
}
}
};
こんな感じ
ソースコードは長いので、続きからどうぞ
- Comments: 0
- TrackBack (Close): 0
AppStore::Scraper アップデート
指定した App がその国のストアで公開されていなかったら何もせずに抜ける処理をいれて、ついでに、エラーメッセージに国番号入れるようにした
- Comments: 0
- TrackBack (Close): 0
AppStore::Scraper アップデート
たぶん世界中でワシしか使ってなくて、しかもワシも仕事で特定の環境でしか使ってなくて、でも公開してしまったものは仕方ないんでアップデート。こんなことなら仕事で作ればよかったわ
レビューページをちゃんとページめくりして全件取得できるようにした。。。が、並べ替えの指定がアホアホ
# 1..Most Helpful # 2..Most Favourable # 3..Most Critical # 4..Most Recent
これをどう指定させるかねぇ
つうわけで、差し替えました
- Comments: 0
- TrackBack (Close): 0
AppStore::Scraper アップデート
冬休みの宿題、ギリで間に合った
なんか Cookie にくわせてるんで、面倒やなぁと思ってたんだけど、ランキング取得するだけなら関係なかった (^^;
やっぱりちゃんと検証せなあきませんね
つうわけで、差し替えました
- Comments: 0
- TrackBack (Close): 0
冬休みの宿題=自作のいろんなものをアップデートする
とりあえず Text::HikiDoc と Appstore::Scraper あたりを
- Comments: 0
- TrackBack (Close): 0
WWW::Mechanize::Plugin::Web::Scraper
気が向いた時に追っかけるための備忘録
楽しようと思って WWW::Mechanize::Plugin::Web::Scraper 試しに使ってみたが、なんか scrape が空っぽな例があって、追っかけるのも面倒なので、WWW::Mechanize と Web::Scraper で分業して解決
それにしても、何度使ってもどっちも神だな。これのおかげで「楽するためなら死んでもいい」教団の人たちが命を散らさずにすんでいるのだな
- Comments: 0
- TrackBack (Close): 0
Net::Amazon::S3 でたくさんのアイテム
Net::Amazon::S3 は Perl で Amazon S3 周りをホゲホゲする時によく使うと思うんだけど、Net::Amazon::S3::Client を使っている時に、どうもバケツ内の全てのアイテムを取得できない
で、原因はというと Net::Amazon::S3::Request::ListBucket で max_keys の default が 1000 になってるからっぽくて、普通はひとつのバケツにそんなたくさんのアイテムいれないので気づいてなかった、と
でも、Amazon S3 でログ保存するようにすると数日で 1000 ファイル以上になるので、どっかで max_keys を渡せばいいんでしょ? と思ったんだけど面倒だったので Net::Amazon::S3::Client を使わないことにして解決した
。。。。という将来の自分宛のメモ
- Comments: 2
- TrackBack (Close): 0
[ 1 2 3 4 5 6 7 8 9 10 11 > >> ]
Home > Perl Archive