amazonのエロ本ランキング(1位~100位)を取得する使い捨てプログラムを書いた
コード
use strict; use warnings; use WWW::Mechanize; use HTML::TreeBuilder; sub get_erorank { my %rank_data = (); foreach my $page_number (1..5) { my $mech = new WWW::Mechanize( autocheck => 1 ); $mech->get('http://www.amazon.co.jp/gp/bestsellers/books/10667101/ref=zg_bs_10667101_pg_2?ie=UTF8&pg='.$page_number); my $tree = HTML::TreeBuilder->new; $tree->parse($mech->content); foreach my $zg_tag ($tree->look_down("class", "zg_itemRow")) { my $rank = $zg_tag->look_down("class", "zg_rankNumber")->as_text; $rank =~ s/\.//; my $title = $zg_tag->look_down("class", "zg_title")->as_text; $rank_data{$rank} = $title; } } return %rank_data; }
説明
使用モジュールはMechanizeとTreeBuilderです。Mechanizeで1ページから5ページまでのHTMLを取得しています。あと後TreeBuilderでHTMLを解析して、お目当ての情報(順位とタイトル)を取得しています。LWPでアマゾンのエロ本ランキングを取得すると年齢認証ページに飛ばされてしいます。MechanizeがAgentだと、年齢認証ページに飛ばされず、そのままランキングページにアクセスできます。なのでMechanizeを使っています。
ウェブから情報を自動取得するテクニックが沢山書いてある本
Spidering hacks―ウェブ情報ラクラク取得テクニック101選
- 作者: Kevin Hemenway,Tara Calishain,村上雅章
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2004/05
- メディア: 単行本
- 購入: 52人 クリック: 904回
- この商品を含むブログ (104件) を見る