ニコ動ログイン部分の不具合改修
自家製のニコ動のCrawlerがログインの認証でこけてたので改修した。
おかしかった部分はcookieにデータが保存されていなかった点。
なんでだろうとコードを見ていたらおかしいところは無かったのだが、
昔作った代物なのでreferrerの設定などが何もなかった。
なので今回の改修で以下の点を加えました。
- 最初にTOPページ表示
- TOPページのreferrer追加
コードはこんな感じ
sub login { my $agent = sprintf( qq{%s; %s}, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)', 'nicovideoCrawler(Twitter: TwitterAccount)', ); my $ua = LWP::UserAgent->new('agent' => $agent); $ua->cookie_jar( HTTP::Cookies->new( file => "./cookie.txt", autosave => 1 ) ); $ua->get('http://com.nicovideo.jp/'); my %post = ( mail => 'mailAddress', password => 'Password' ); my $request = POST( "https://secure.nicovideo.jp/secure/login?site=community", [%post] ); $request->referer('http://com.nicovideo.jp/'); $ua->request($request); return $ua; }