1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

kitcometalsから値段を持ってくる(2)

Last updated at Posted at 2013-03-11

前回の続き。

とりあえずやろうとしていること:
http://www.kitcometals.com/charts/nickel_historical_large.html#30days
の数字を記録する(ちなみに上司に提出する)。前回、
1:ページそのものを引っ張ってくる
2:中身をスクレイピングして欲しい数字を算出する
3:日付を添えてデータベースにぶち込む
のうち2までが出来たので、とりあえず手間なくデータベースにぶち込むようにするところまで。整備とかは後からゆっくり考える。

とりあえず何も考えずにfuelphp( http://fuelphp.com/ )を使って実装することにする。
昔はちいたん( http://php.cheetan.net/ )と使用してたし実際楽なんだけど、勉強も兼ねて後からゆっくり動作解析したいと思ったんで初採用。

自分の動作環境
・Windows7Pro
・Xampp 1.8.1(英語) apacheとmysqlを稼働させておく。
・fuelphp 1.5.3

とりあえずfuelphpをダウンロード・解凍して、"C:\xampp\htdocs\kitco"にdocs以外を設置。dosプロンプトで
php oil g scaffold kitco value:float(6,4) date:date

scaffoldは足場って意味なのね。とりあえず雛形を自動生成させる。次に使用データベースの設定、"C:\xampp\htdocs\kitco\fuel\app\config"に行って2ファイルいじる。

config.php
<?php
return array(
 'always_load' => array(
  'packages' => array(
   'orm',
  )
 )
);

コレを入れないと表示時にデータベースにormがないよ的エラーが出る。詳細よくわかってないが多分必須なんだろう。

development\db.php
<?php
return array(
	'default' => array(
		'connection'  => array(
			'dsn'        => 'mysql:host=localhost;dbname=kitco',
			'username'   => 'hoge',
			'password'   => 'fuga',
		),
	),
);

もちろんデータベース名とほげとふがは適当に。何もいじってない人は多分'root'と''。あとはデータベース作っておかないと行けないので作成しておく。面倒ならxamppのmysqladminに行って作成。作成後は
php oil r migrate
が通るので、これでデータベースのテーブル設定も終わり。最後に前回書いた実際のコードを置くために

1."C:\xampp\htdocs\kitco\public"にphpQueryフォルダ以下を設置(前回参照)
(requireできるなら別にここじゃなくてもいい)
2."C:\xampp\htdocs\kitco\fuel\app\views\kitco"に移動し、_form.phpを以下のように書き換える

_form.php
<?php echo Form::open(); ?>

<?php
require_once('phpQuery/phpQuery.php');
$html = phpQuery::newDocumentFile('http://www.kitcometals.com/');
mb_language('Japanese');
$lists = $html['table:eq(15)']; //テーブル決め打ち
$hoge = $lists['tr:first td:eq(1)'];
$current = pq($hoge)->text();
$hoge = $lists['tr:eq(1) td:eq(1)'];
$change = pq($hoge)->text();
$value = $current - $change;

$date = date_create();
if($date->format("w")== 1) // 月曜日の時は金曜日を指示
	$date->modify('-3 day');
else
	$date->modify('-1 day');
$daybefore=$date->format("Y/m/d");
?>
	<fieldset>
		<div class="clearfix">
			<?php echo Form::label('Value', 'value'); ?>

			<div class="input">
				<?php echo Form::input('value', Input::post('value', isset($kitco) ? $kitco->value : $value), array('class' => 'span4')); ?>

			</div>
		</div>
		<div class="clearfix">
			<?php echo Form::label('Date', 'date'); ?>

			<div class="input">
				<?php echo Form::input('date', Input::post('date', isset($kitco) ? $kitco->date : $daybefore), array('class' => 'span4')); ?>

			</div>
		</div>
(以下は同じ)

数値算出のために3行目からのブロックを追加し、空白時の値に算出した数字を出すようにする変更。営業日の計算はとりあえず適当に書いたものなんで、後で手を入れるかもしれないしほっとくかもしれない。

とりあえず目的達成のためのシンプルなアプリケーションはできたので、あとは適当に手を入れることがあったら更新かなぁ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?