コンテンツへスキップ

perlでパースするやり方を記載したいと思います。

use strict;
use HTTP::Request::Common;
use LWP::UserAgent;

#検索オブジェクトを生成
my $ua = LWP::UserAgent->new;
my $url = ”アクセスさせたいurl”;
my $reqest= HTTP::Request->new(url, post);

#cookie情報 変数宣言
my $cookie_jar = HTTP::Cookies->new;
my $post = ”ログイン情報等を連想配列で参照渡しする”

#クッキー容器を読み込み。可能なら変数で持ち回る処理に変更
ua->cookie_jar

#レスポンスで取得した結果をレスポンスに格納する。
my $response=ua->get(request);

#継続でPostする場合はcookieにレスポンスで取得したクッキーを設定する必要があるため、加工する必要がある。文字列結合と上手く処理を行う。文字列切り抜きを行う
if(!$response->is_susses ||$response = 'null')
{
    my $body_st   =   $response->as_strings;
    
}else {   
    return null;
}

#Response情報は取得したため、パース処理を書いてく。
#パース処理はhtmlの知識&法則性がないと大変です。

まとめ

LWP::UserAgentモジュールを使ってpostし、レスポンスを取得する処理事態は簡単だなと個人的に思いました。後は以下にパースして必要な情報を取得するかかと思います。

今回はパースする処理は今回の記事で書いてませんが、後日書くことがあれば載せたいと思います。最後まで読んでいただきありがとうございました。

追記)2019年5月16日

パース処理について少し付け足し。

$body_stの変数の値として取得したいURL先のHTMLタグが格納されております。そのため、htmlを以下に分解し、効率的にパースを行うか法則性等見つけ出すのは大変です。

仮想環境を使った開発はいくつかあると思います。docker、vmwareだったり。

今回はVirtualBoxを使って構築している場合について記載したいと思います。

なぜこの記事を書こうとしたかというと、サーバを起動した時に基本的にlocalhost:8080を起動します。この場合、ipv4のアドレスは何になるのか分かりません。

どうやったら分かるのか一通り試したので試した内容を記載していきたいと思います。

1.windowsコンソールからコマンドプロンプトで確認

ipconfig -all
入力後すべてのデバイスのアドレスがわかります。

2.実行しているサーバによって設定ファイルがないか探す

javaのプロジェクトの場合、propertiesファイルがないか調べたり

サーバの設定でIPアドレス指定していないか調べる。基本的に存在しない場合はそのサーバ(tomcat,jetty,IBMなど)のデフォルト設定を見てみる

3.Linuxからコマンド入力してみる

よくあるのがpingを入力し、受信できているか確認すると思います。RestAPIだった場合、curlコマンドを入力し、レスポンスが返ってくるかなど

返ってこない場合は設定が間違っている可能性があります。また、上記の手順を踏んでできない場合はVirtualBoxのデフォルト設定になっているかもしれません。

4.デフォルト設定で試してみる

VirtualBoxのデフォルト設定

自分のwindowsPC(ホストOS)から確認する場合は127.0.0.1

VirtualBox内の環境(ゲストOS)から確認する場合は10.0.2.2

AngularJSでmodelクラスとhtmlをバインドさせ、最終的に必要なレスポンス情報を書いていくことを目標に記載していきます。

AngularJSのリファレンスで値の保持とhtmlとの双方向バインドで使うng-modelについて、説明を書いていきたいと思います。

そもそも、この記事を書こうとした理由としてjsで保持している値にどうやってバインドさせるか等書いていなかったので忘れないように書きたいと思います。

以下のサンプルはどちらかというと【JavaScript】のやり方になります。

Var sample = {
    xxxx:false, //フラグの場合
    bbbb:''     //文字列の場合
}




変数定義したものをng-modelでバインドさせた値に格納する必要があります。

上記を踏まえた上でのサンプルを書いていきます。

〇静的の場合

html

<!--チェックボックスをng-modelの値を単純に使う場合-->
<!--フラグを追加するときxxxxにフラグを追加することが出来ます-->
<input type=checkbox ng-model='value.xxxx'>
<!--配列をループしてng-modelの値を表示する場合-->
<div ng-repeat='value.name'>
    <lavel><span><input type=checkbox/>{{value.name}}</span></lavel>
</div>

js(※APIから返されたJSONイメージになります)

//valueの値をコードと紐付ける
this.value = {
    this.name = [
    {
        サンプル
    },
    {
        サンプル2
    },
    {
        サンプル3
    },
    ]
}

この場合は単純にvalueの値を表示している状態です。

〇動的の場合

html

<!--リファレンスのng-clickを使います-->
<lavel><span><input type=checkbox ng-model='sample.xxxx' ng-click='click'/>{{sample}}<span></lavel>
<!--sample.xxxxがtrueの場合に表示する -->
<lavel ng-show='sample.xxxx'>

js

this.click = function() {
    //フラグを反転させたい場合
    $scope.sample.xxxx = !xxxx;
    //変数自体の形をBoolean型にしてからtrueを設定する
    $scope.sample.xxxx = true;
    //値を格納したい場合→この場合インクリメントさせる
    $scope.sample.bbbb = $scope.sample.bbbb + 1
}

フラグを例にすると反転させることによってng-showを使って表示させたりできます。

まとめ

*JavaScript系の自由言語には、人によって書き方が異なるのであくまでも参考にしてください。

また、上記で説明してきた情報でAngularJSを少しは理解できればいいなっと感じました。

〇本ページで学べること
画面表示と値をバインドできます。少しでも参考になれば幸いです。また、間違っていましたら、コメント頂けると助かります。

こんばんは。

今回はJavaScriptのデバックについて書いていきたいとおもいます。

JavaScriptは基本的に簡単なものしか作成したことしかありませんでした。

たとえばどんなのがあるかというと、jspかhtmlファイルのIDを使ってスタイルの変更を行うという処理です。

実際のソースはこんな感じになります。

xxxxx.html

・組み込みJSで直接呼び出している形になります。

inputタグでボタンに以下のようになっている場合が多いと思います。

onclick=ファンクション名(関数)

ファンクション名=style()

●JavaScript

基本的にclassタブで指定していることが多いので例として記載します。

this.style = function() {

getElementByClassName(取得したいclass名)

var 変数に格納した後スタイル変更する

このような処理がモック作成等で結構使われています。

 

早速、デバックを貼ってみましょう。

この場合、F12を押しでデベロップツールで確認します。

 

ファンクション関数を記載してるところに左クリックをし、ブレーク文を指定します。

※ブレークの張り方は省きます。

ブレークした行に来た時に何を行なっているか分かります。

 

以上、簡単ではありますがデバックの仕方でした。