Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード Twitter

2013-02-11

WWW::Scraper で JavaScript を使ったWebサイトへのアクセスを自動化する

Perl で WWW::Mechanize や Web::Scraper を使ってWebサイトスクレイピングしたことはあるが、画面遷移に JavaScript を使っている場合、どうすればよいか調べてみた。


例えば以下のように JavaScript を使ってリンクしている場合。

<a href="javaScript:next(2)">次へ</a>

WWW::Scripter と WWW::Scripter::Plugin::JavaScriptインストールして*1

% cpanm -f WWW::Scripter
% cpanm -f WWW::Scripter::Plugin::JavaScript

こんな具合に WWW::Scripter の eval で JavaScript関数を呼んでやると画面遷移することができた。

#!/usr/bin/env perl
use strict;
use warnings;
use WWW::Scripter;

my $URI = 'http://...';
my $w = 'WWW::Scripter'->new();
$w->use_plugin('JavaScript');
$w->get("$URI");

$w->submit_form(
	form_name => 'oss_query',
	fields => {
		c_keywords => '11gR2',
 	},
);

$w->eval('next(2)');
print $w->content;

__END__

関連

*1:WWW::Mechanize はインストール済み

passerbypasserby 2017/02/10 18:10 タイトル、違ってますよ。
WWW::Scraper → WWW::Scripter
記事、参考になりました。ありがとうございます。

yohei-ayohei-a 2017/02/21 21:03 ご指摘ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/yohei-a/20130211/1360543767
リンク元