6.7 KiB
6.7 KiB
title | author | date | url | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|---|
このように書くときれいにスクレイピングできた | kazu634 | 2009-07-08 | /2009/07/08/_1292/ |
|
|
すこし工夫すると、Web::Scraperできれいにスクレイピングできるようになった。
参考にしたのは
Perlスクリプト
# === Libraries === use strict; use warnings; # === Libraries === use URI; use Web::Scraper; use YAML; use Encode; use utf8; # === Main part === # /html/body/div/div/div/div[4]/div/div[2]/div[2]/table/tbody/tr/td/div/strong my $scraper = scraper { process '/html[1]/body[1]/center[2]/center[1]/table[1]/tbody[1]/tr[1]/td[2]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[1]/td[1]/table[@class="size2"]', 'shop' => scraper { process '//tr[1]/td[2]', 'shopname' => 'TEXT'; process '//tr[2]/td[2]', 'tel' => 'TEXT'; process '//tr[3]/td[2]', 'address' => 'TEXT'; process '//tr[4]/td[2]', 'shophour' => 'TEXT'; process '//tr[5]/td[2]', 'accomodation' => 'TEXT'; process '//tr[6]/td[2]', 'access' => 'TEXT'; process '//tr[7]/td[2]', 'memo' => 'TEXT'; }; }; my $result = $scraper->scrape( URI->new("http://www.ginza-renoir.co.jp/renoir/051.htm") ); print encode( 'utf8', Dump $result ); # print Dump $result; # Reference: http://www.e-kotoba.net/ # Below is the sample # (1) <div class="ekotoba">...</div>の部分をbodyに取得 # process 'div.ekotoba', 'body' => 'TEXT'; # (2) XPATHで指定 # Firebugsなどを用いる。
実行結果
kazu634@kazu634-desktop% perl scraper.pl ~/work/googlemaps [2987] --- shop: access: JR池袋駅東口出て明治通り左並びの東池袋1丁目交差点ヤマダ電機隣 accomodation: 禁煙席:38席喫煙席:32席 address: 東京都豊島区東池袋1-40-2池袋旗ビル2階 memo: '' shophour: 年中無休全日:7:30-23:00 shopname: 喫茶室ルノアール 池袋東口店 tel: 03-3980-6352