wordpressのURL、titleを取得するperlスクリプト作った!

Pocket

今、写真に関するwebサービスを作っている。
そのサービスにおいて、twitterでwordpressの過去記事をつぶやくbotを作る必要があるので、「wordpressの過去記事URL」、「過去記事のtitle」を取得する必要があったので、perlでスクリプトを作ってみた。

以下、作業メモを記載する。

まずは、wordpressのパーマネントリンクの設定を確認する

私の場合は、
カスタム構造の「/archives/%post_id%」としているので、他の記事は、末尾の番号(post_id)が異なるのみとなっていることがわかる。

あとは末尾の番号をしらみつぶしにアクセスして、レスポンスコードを確認する

末尾の番号を変更するのみとなるので、しらみつぶしにアクセスをして、
レスポンスコードが200のみのものを表示するようにした。
特に、私の場合は、300代の番号しかなかったので、300〜400でアクセスしました。
ここ(forのループの番号)は適宜番号を変えてください。

use warnings;
use strict;
use LWP;
use LWP::UserAgent;
use Encode qw(encode_utf8);
use encoding 'utf-8';

for (my $i=300;$i<400;$i++){
        #ここの$iの値は適宜変更すること
	my $url = "http://hogehoge.com/archives/$i";
	my $ua = LWP::UserAgent->new;
	$ua->agent("TestApp/0.1");
	my $request = new HTTP::Request(HEAD => $url);
	my $header = $ua->request($request);
	if ($header->code== 200 ){
		print $header->code, "\n";
		print $url, "\n";
		my $reply = $ua->get($url);
		my $content = $reply->decoded_content;
		if($content =~ /<title>(.+)<\/title>/){
			my $title = $1;
			print $title;
		}
	}

注意

6行目にある「use encoding ‘utf-8’;」
を忘れずに記載してください。
これを忘れると、Wide character in print atのエラーがでてしまいますので。

コメントを残す