コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

雑スクレイピング in ペチピー

ルビーでやるよりもPHPでやる方が有用なのではないかと思い立ったのでやってみる。

Rubyって無料の環境でWebアプリを作るってなったらほぼ選択肢ないんですよね。そんなわけで今日はみんな大好きPHPスクレイピングをやっていきます。PHPでのスクレイピングに使えそうなツールってよく知らないので、雑にググって出てきたphpqueryってのを使っていきます。

ダウンロードはこちらから。僕はComposerから落としてきます。
Google Code Archive - Long-term storage for Google Code Project Hosting.

Composer過去記事
inujini.hatenablog.com
Composerについてはこちらから。これが何かといえばRubyでいうGem、Node.jsでいうnpm的なやつです。

# 雑な導入手順
> composer init
> composer search phpquery
> composer require electrolinux/phpquery

こんな感じに導入します。


なにかつくってみよう

準備ができましたので早速スクレイピングしていきます。ネタは何にしましょうかね……?そうですね…、僕が普段から利用している(大嘘)カドカワストアのランキングを取得してみるなどをやっていこうと思います。

store.kadokawa.co.jp

これのな、グッズ総合ランキングをな……。こうな…

<?php
// 要phpquery
require './vendor/autoload.php';

$html = 'https://store.kadokawa.co.jp/shop/';
// https対策
$arr_context_options=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);  

// データの取得
$response = file_get_contents($html, false, stream_context_create($arr_context_options));
$dom = phpQuery::newDocument(mb_convert_encoding($response, 'HTML-ENTITIES', 'auto'));
$i  = 1;
foreach($dom[".goods_ > .StyleR_Frame_:eq(1) "]->find('a') as $ranking){
    echo $i."".pq($ranking)->attr('title').PHP_EOL;
    $i++;
}

結果

> php ***.php
1位 大木ゆきの 宇宙とつながる パワースポットカード
2位 けものフレンズ2 第1巻Blu-ray
3位 「ようこそ実力至上主義の教室へ11」MFたぺJセット
4位 けものフレンズ2 第2巻Blu-ray
5位 けものフレンズ2 第3巻Blu-ray

こうすることで取得できました。売れ筋はパワースポットカードなんですねぇ。へー。


おわり

3Dモデルつくるよ Part 0

おそらく Part 0 から続かない

つい先日、「OpenToonz」っていうアニメ制作ソフトいじりはじめたばかりですが、僕が愛読しているドットインストールの方でも「OpenSCAD」っていうオープン仲間の講座があったのでついでにやってみようと思ったのでした。Open仲間やしね*1。やるしかないよね。

ドットインストール
https://dotinstall.com/lessons/basic_openscad
ドットインストールこういうマニアックな講座突然やるから好き。


なんか作るの巻

まずは何はともあれ公式から落としてきます。

公式
www.openscad.org
こいつがなにものなのか詳しくは知らないけども CUI CADとか言われています。CUI!? アイェェ!!CUIナンデ!?


はい、インスコするとこんな感じです。

f:id:andron:20190405202316p:plainf:id:andron:20190405202326p:plain

操作に関してはここにチートシートありました。
OpenSCAD CheatSheet
これみれば、ドットインストールの内容9割くらいいらなくなる気がする。


んで講座一通りやるとこんなん作れるようになります。
f:id:andron:20190405204750p:plain
出力形式はSTLっぽいです。3Dプリンタでよく使われる形式らしいけどどうしよう、僕その形式わかんないや。そんで、これで何かつくろうかと思ったんですけど、3Dプリンタ持ってないし、作ってみようと思える寸法図手持ちにないので今回はこれで……。


~ 完

完走した感想

3Dプリンタ持ってなければ割と不要なものな気がした。やっぱりCADソフトだ……。

3Dプリンター | フラッシュフォージ | FLASHFORGE 3D プリンター
3Dプリンタあれば楽しいのかもしれないけどもおおよそ7万か……。うーん、手が出せない。

それに僕みたいにノリと勢いだけで乗り越えようとするスーパーウルトラ雑モデリングをやる目的だったら、Blenderでいいやって選択肢になってしまう。まあCADってそういうもんだよね……。そんな感じのものがあるらしいです。へー。

*1:接頭語のOpenって多分オープンソースをあらわすOpenなんで名前でシンクロニシティ感じるほどのものないんですけどね……

今宵、月曜日ヲ告ゲル

月曜日です

みんなー起きてー!! 朝だよー月曜日だよー!! 起きてーー、朝だよーおはよーーーーーーーーーーーーーーーーー!! 朝だよーーーー!! 月曜日だよー遅刻するよーーーーーーーーーーーー!! 起きてーーーーーーーーーーーーーーーーーーーーーーーーーーっ!!


はい、どうも僕です。以前作ったこれを更新しました。本日の報告は以上です。それじゃあ解散っ!!
inujini.hatenablog.com
変更する前にスクショ撮っておけばよかった。前回のやつは下のようなことしか書いてないクソPHPプログラムだしまあいいか。

    <?php
        date_default_timezone_set('Asia/Tokyo');
        // (日:0  月:1  火:2  水:3  木:4  金:5  土:6)
        $WeekNo = date('w');
        if ($WeekNo == 1){
          echo "月曜日";
        }else{
          echo "";
        }


そんで今回追加した機能は以前に書いたニュースのやつをねじ込んだだけです。
inujini.hatenablog.com


合体させることで以下のような謎サイトができました。
月曜日がつらい
月曜のときにニュース表示します。それ以外の機能は特にないです。そしてそれ以外の日は何も表示しません。
f:id:andron:20190401231029p:plain


参考
機能一覧 | 無料レンタルサーバー【スターサーバーフリー】


おわりに

以前も祝日の場合はなんらかの機能を実装させると言ってはいたんだけど、思っていたより借りてるサーバーのフリープラン制約がきつくてどうしようって悩んでる。一応今のところ下のポンチ図みたいな感じで、祝日日を書いたCSVデータをMySQLに流し込んで運用するってのを考えています。自動デプロイとかできる環境もてる人達羨ましい。
f:id:andron:20190401230756p:plain

この程度だとDB使わずにソース直書きの方がはやいかもしれない……。DB連携させるメリットないな……。あ、でもcssとかその日だけの機能とかも考えていたから、スキーマをもう少し練って考えてもいいのかもしれない(ノープラン)。うーむ……。