Hatena::Groupperlmemo

Perlメモ

2008年09月18日 より開始
最新5件(RSS 2.0)
古いモジュールの更新

Plagger(Fedora10)
Plagger(Ubuntu9.04)

CPAN::Mini

Remedie(Ubuntu 9.04、Vine4.9(5α)、Fedora11Preview)
Remedie(Fedora10) 見れたサイトまとめ
編集

2012-03-25

全記事のURLリストを取得2

| 全記事のURLリストを取得2 - Perlメモ を含むブックマーク はてなブックマーク - 全記事のURLリストを取得2 - Perlメモ 全記事のURLリストを取得2 - Perlメモ のブックマークコメント

#!/usr/local/bin/perl
#記事URLのリストを表示

use strict;
use lib qw(./mylib);
use LWP::Simple;
use Encode;
use LWP;
use Web::Scraper;
use URI;

printURLList();  

sub printURLList {
	my $start = 1;
	my $lastPage =  3;  #最終ページを指定
	my $baseUrl = 'http://ameblo.jp/hiroyuki12/';

	for(my $i=$start; $i<=$lastPage; $i++)
	{
		my %hash;

		my $itemnumber = $i;
		my $url = $baseUrl . 'page-' . $itemnumber . '.html#main';

		# WEBページ取得して変数に格納
		my @data = split(/\n/, get($url));  #改行で分解して @dataへいれる
	
		foreach ( @data ) {
			if(/URL<.a>/ && /$baseUrl/) {
				s/<a href=.*?"//g;  #<a href= から " まで除去
				s/".*?a>//g;  #" から a> まで除去
				#print $_ . "\n";  #URLを表示 debug

				# 記事タイトルを myTitle という名前で取るスクレイパーを作成
				my $scraper = scraper {
					process 'h3.title', 'myTitle' => 'TEXT';
				};

				# 記事ページのURLオブジェクトを、
				my $uri = new URI($_);

				# 先ほどのスクレイパーに渡す。(スクレイピングされる)
				my $res = $scraper->scrape($uri);

				print encode('utf-8', $res->{myTitle} . "," . $_ . "\n");  #タイトルとURL
			}
		}
	}
	
	return 0;
}

sub Header {
	print "Content-type: text/html\n";
	print "\n";
	print "<html>\n";
	print "<head>\n";
	print '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . "\n";
	print "<title>hatenaidea</title>\n";
	print "</head>\n";
	print "<body bgcolor=\"#ffcccc\">\n";
	
	return 0;
}

sub Footer {
	print "</body>\n";
	print "</html>\n";

	return 0;
}

$ perl a.pl