Home > Perl Archive
[ 1 2 3 4 5 6 7 8 9 10 11 > >> ]
Perl Archive
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
- TrackBacks: 0
AppStore::Scraper アップデート
指定した App がその国のストアで公開されていなかったら何もせずに抜ける処理をいれて、ついでに、エラーメッセージに国番号入れるようにした
- Comments: 0
- TrackBacks: 0
AppStore::Scraper アップデート
たぶん世界中でワシしか使ってなくて、しかもワシも仕事で特定の環境でしか使ってなくて、でも公開してしまったものは仕方ないんでアップデート。こんなことなら仕事で作ればよかったわ
レビューページをちゃんとページめくりして全件取得できるようにした。。。が、並べ替えの指定がアホアホ
# 1..Most Helpful # 2..Most Favourable # 3..Most Critical # 4..Most Recent
これをどう指定させるかねぇ
つうわけで、差し替えました
- Comments: 0
- TrackBacks: 0
AppStore::Scraper アップデート
冬休みの宿題、ギリで間に合った
なんか Cookie にくわせてるんで、面倒やなぁと思ってたんだけど、ランキング取得するだけなら関係なかった (^^;
やっぱりちゃんと検証せなあきませんね
つうわけで、差し替えました
- Comments: 0
- TrackBacks: 0
WWW::Mechanize::Plugin::Web::Scraper
気が向いた時に追っかけるための備忘録
楽しようと思って WWW::Mechanize::Plugin::Web::Scraper 試しに使ってみたが、なんか scrape が空っぽな例があって、追っかけるのも面倒なので、WWW::Mechanize と Web::Scraper で分業して解決
それにしても、何度使ってもどっちも神だな。これのおかげで「楽するためなら死んでもいい」教団の人たちが命を散らさずにすんでいるのだな
- Comments: 0
- TrackBacks: 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
- TrackBacks: 0
MT-Plugin-Mediawiki 作ってみた
MTQ で「MediaWiki記法が可能となるプラグイン」という要望があがっているのを見かけたので、作ってみた。。。が、Mediawiki 記法使ったことないんだよなぁ
- Text::MediawikiFormat に渡してるだけなんで、MT に合わせてなんかした方がよいかもしれない
- ツールバーの JavaScript はまだいじってない
- テストしてない (オイ
とりあえず置いときます。テストしたら MTQ の方にもコメントしてみよう
自分では使う予定ないので、誰も使わなさそうなら、放置の方向です
[ MT-Plugin-Mediawiki_20100630.tar.gz ]
追記:
- ちょっとテストしてみたけど、テキスト周りの書式はわりかし大丈夫そう
- 画像周りはやっぱりなんか考えなあかんな
さらに追記:
- JavaScript 部分いじってて気づいたんだが、Text::MediaWiki はそのままだとここに書いてある通りにはならないな。もうちょっと時間かけるか
- Comments: 0
- TrackBacks: 0
AppStore のレビューとか順位とか
仕事でちょっと作ったスクリプトが、一年を経過しエライことになってきて、メンテ不能になってきた。XML からデタラメに引っこ抜いてるので頻繁に色々修正せなあかんしね
で、せめてこんな感じで使えるようにしたいなぁ、と
use AppStore::Scraper;
use Data::Dumper;
my $obj = AppStore::Scraper->new(wait => 5);
my $info = $obj->app_info(
app => ['322894440','331069023','331225704'],
store => ['jp','us'],
lang => 9,
ident => 'ipad',
review_number => 100,
review_order => 4
);
warn Dumper $info;
仕事中にこんなことやってるのも時間もったいないので、ひとまず家でガワだけ作った。中身は整理しきれてないけど、動いているので、ベタッと貼っとく。長いけど
動いているだけなので、誰かキレイに修正して ><
2010/06/18: bug fix しましたよ
2010/06/23: wait 秒数指定できるようにしたよ
2011/01/04: iPhone / iPad を指定できるようにしたよ
2011/02/03: レビューの取得件数とオーダーを指定できるようにしたよ
2011/02/17: その国のストアで公開されてない App の場合はスルーするようにしたよ
- Comments: 5
- TrackBacks: 0
MT::Plugin::HikiDoc アップデート
仕事で MT5 使ったので、MT5.x での動作確認ついでに、SyntaxHighlighter 同梱してアップデートした。イマドキ、これくらいは JavaScript にやってもらう方がスマートだよね
ダウンロードはこちらから
MT::Plugin::HikiDoc の説明はこちら
以下、Emacs 風なサンプル
package MT::Plugin::HikiDoc;
use strict;
use MT;
use base qw( MT::Plugin );
use Data::Dumper;
our $VERSION = 0.1;
our $_INITIALIZED = 0;
our $_PREFIX = 'hikidoc_plugin_';
use File::Spec;
my $plugin = __PACKAGE__->new({
id => 'HikiDoc',
key => 'HikiDoc',
name => 'HikiDoc',
description => '<MT_TRANS phrase="A text-to-HTML formatting plugin (HikiDoc Style)">',
author_name => '<MT_TRANS phrase="KAWABATA Kazumichi">',
author_link => 'http://haro.jp/',
version => $VERSION,
l10n_class => 'HikiDoc::L10N',
});
MT->add_plugin($plugin);
コード書いてる時間よりもサイト更新してる時間の方が長くてイヤんなって、MT 使うのやめそうになったのは気の迷い
- Comments: 0
- TrackBacks: 0
[ 1 2 3 4 5 6 7 8 9 10 11 > >> ]
Home > Perl Archive