So-net無料ブログ作成

CMDでリサーチ、概要をファイルにまとめる

前回はコマンドプロンプトから複数のブラウザに引数を与え、3つの情報を一気に得る方法について書きましたが、今回はリサーチ結果の概要部分をファイルにまとめる方法について書きます。

さらに「書類としてプリントアウト」までを想定します。

リサーチの方法は例のごとくウィキペディアを使います。

ウィキペディアページの中から概要部分だけ・・・と言っても、現実問題、人的判断と違い、プログラムによる絞り込みには限界があるので、とりあえず、他ページへのリンク箇所を省いた、生のテキスト部分だけを抽出する方法で行います。

まず初めにスクレイピングで必要な部分だけを抽出したうえで、ブラウザに出力させる実行ファイルを作成します。

それに伴い「simple_html_dom.php」のファイルも入手します。

スクレイピング処理はPHPで行いますのでPHPが動作する環境が必要になります。

既にレンタルサーバー等で自分のサーバースペースを設けているなら問題ありませんが、そうでないならば、ご自分のPCにローカルサーバーを構築する必要があります。

必要なものは、スクレイピング用の実行ファイルと「simple_html_dom.php」、そしてコマンドプロンプトからこれらのファイルにアクセスするためのバッチファイル・・・ということになります。

「simple_html_dom.php」については検索等を使い、予めダウンロードしておいてください。

スクレイピング処理用のファイルを作成


<?php

include "simple_html_dom.php";

$key = mb_convert_encoding($_GET['research'], 'UTF-8', 'SJIS');
$key = htmlspecialchars($key, ENT_QUOTES, 'UTF-8');

function wikiresearch($key){
	$getquery = urlencode($key);
	$wikiconQuery = "https://ja.wikipedia.org/wiki/" . $getquery;
	$wikiconhtml = @file_get_html($wikiconQuery);
	if($wikiconhtml) {
		foreach($wikiconhtml->find('p') as $wikiconlist) {
			mb_regex_encoding ('UTF-8');
			$wikicontent = htmlspecialchars($wikiconlist->plaintext, ENT_QUOTES, 'UTF-8');
			echo '

'.$wikicontent.'

'; } } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title><?php echo $key; ?></title> </head> <body> <div align="center"><h1><?php echo $key; ?>の調査報告書</h1></div> <?php echo wikiresearch($key); ?> </body> </html>

上記を「index.php」(文字コードUTF-8)で保存し、「simple_html_dom.php」と共にサーバーの任意のディレクトリ内へアップロードし、サブドメイン等のURLを作成して割り当ててください。

コマンドプロンプト用のバッチファイルの作成


@echo off
setlocal
start iexplore -new http://xxx.xxx.xxx/?research=%1

「xxx」の部分を上で割り当てたURLと入れ替えます。

上記コマンドを「po.cmd」で保存し、前回作成した「rs.cmd」が入っている「Command」ディレクトリ内に置きます。

実際のところはブラウザに出力せずにプリントアウトまでの一連の流れをコマンドで行いたいところですが、「print」コマンドは環境によって動いたり動かなかったりするので、純粋にブラウザに出力して、それをプリントアウトする無難な方法で行きます。

実際、このやり方のほうが早いですし、ブラウザでレンダリングされた状態をプリントアウトしたほうが見栄えの良い書類が出来るはずです。

あとはコマンドプロンプト画面から「po キーワード」で概要部分だけが掲載されたブラウザが立ち上がりますので、そのままプリントアウト作業に移行すればよろしいかと思います。