SSブログ

Apache POIを使いExcelファイルに書き込むプログラムをJavaで創る [プログラミング]

やりたいこと

データをExcelファイルに書き込みたい

実装

pom.xml


PoiWriteDemo.java

実行結果

poi1.JPG


nice!(0)  コメント(0) 

jsoupを使いWEBサイトをスクレイピングするプログラムをJavaで創る [プログラミング]

やりたいこと

jsoupを使い、WEBサイトをスクレイピングするプログラムの基礎を学習したかった。

追々、実現したいこと

  • ショッピングサイトや価格サイトで商品情報を収集する
  • ニュースサイトで自分が興味あるキーワードに合致するニュースを収集する
  • オークションサイトで目当て商品の情報を収集する
  • 近所の映画館の上映スケジュールを収集する
など

注意点

スクレイピングプログラムは、性質上、一回の実行で大量のリクエストを発行することが可能。
そのため、実行周期やリクエスト数によってはDoS攻撃とみなされる場合があるので、節度を持った運用が必要。

実装

pom.xml


ScrapingDemo.java

実行結果

最初の抽出では、検索結果から"h3"タグの要素のみを抽出している。
要素は順不同で抽出しており、最後の2件については、検索結果のタイトルとは関係ない要素を抽出してしまっている。
2回目の抽出で、classが"LC20lb DKV0Md"の要素のみを抽出している。
"h3"タグの抽出結果から、更にclassが"LC20lb DKV0Md"の要素に絞られて抽出されているのが分かる。




nice!(0)  コメント(0) 

FreeTTSを使いテキストを音声変換するプログラムをJavaで創る [プログラミング]

やりたいこと

喋らせたいテキストを読み込ませて、音声変換して出力する。

実装

pom.xml


SpeechDemo.java

実行結果

残念ながら、FreeTTSは英文にしか対応しておらず、平仮名やカタカナ、漢字などといった日本語のテキストを読み込ませても、変換されない。
だもんで、空耳アワーよろしく、そう聴こえる風な英文を読み込ませて、日本語っぽく喋らせてみた。
この手法を使えば、短い文章や単語なら、なんとかイケる気がする。
英文の場合はそれなりに喋るw

英文(Hello free text to speach)

お帰りなさい(ork car early not sign)

行ってらっしゃい(it terror shine)



nice!(0)  コメント(0) 

パスワード付きZIPファイルを作成し自動でメール送信するプログラムをJavaで創る [プログラミング]

やりたいこと

会社の経費申請が不定期に発生し、その都度、申請書をパスワード付きZIPファイルでメールで送信する必要があった。
作った申請書ファイルをパスワード付きZIPファイルで圧縮し、メーラーを起動し、宛先を確認し、メール送信するという手順が面倒だったので自動化。
会社提供の経費申請書作成ツールを実行した後に、本プログラムを実行するようにして、少しだけ手間とミスを減らすのが目的。

参考

zip4jを使いZIPファイルをメモリ上で扱うプログラムをJavaで創る

実装

pom.xml


メール送信の設定は、プロパティ形式のXMLファイルで定義しておく。

mail.xml


会社のメールサーバはSSL通信を使用していなかったので、上記の設定でメールを送信できた。
SSL送信の場合は、後述のプロパティが必要っぽい(未検証)。

SSL送信時の追加プロパティ


ZipDemo.java



nice!(0)  コメント(0) 

zip4jを使いZIPファイルをメモリ上で扱うプログラムをJavaで創る [プログラミング]

やりたいこと

ファイルを指定しパスワード付きのZIPファイルを作成する。

実装

後々、汎用的に使いたかったので、バイト配列で返すように実装する。
本プログラムでは、ディレクトリは指定しない(てか、できない)。
今回、最終的にtest.zipというファイル名でZIPファイルを保存している。

pom.xml


ZipDemo.java



nice!(0)  コメント(0) 

Wi-Fiの接続を検知して帰宅時にLINEにメッセージを送信するアプリをJavaで創る [プログラミング]

やりたいこと

自宅からの出入りが発生したときに、LINEにメッセージを送信する。
ワークアウト時に、開始時間と終了時間を記録するのを自動化したかった。

参考

実装

GoingHome.java

やったぜ!

Screenshot_20200806-151346.png


nice!(0)  コメント(0) 

自分のスマートフォンがWi-Fiに接続されたのを検知するアプリをJavaで創る [プログラミング]

はじめに

今回は、ARPコマンドを使用し、同じセグメント内に任意の端末が存在するかを確認するプログラムを作成してみる。

応用すると

例えば、帰宅時に自分のスマートフォンがWi-Fiに接続されたのを検知し、白物家電を起動したり自宅の出入りの時間を記録したりできる。

実装

ルータの設定なのか不明だが、単純にARPコマンドを発行しただけではARPテーブルが更新されておらず、端末を発見する事ができなかった。
なので、ARPコマンドの前にpingを発行し、無理矢理ARPテーブルを更新するようにした。
ルータの設定などで回避できるなら、pingは不要。

ArpDemo.java



nice!(0)  コメント(0) 

LINE Messaging APIを使いメッセージを送信するアプリをJavaで創る [プログラミング]

はじめに

JavaからLINE Messaging APIでメッセージをプッシュしてみたかったので、調査をしながらプログラミングしてみた。

BOTの作成と動作確認

LINE Developersの登録

LINE Developersの登録については、いろんなサイトで紹介されているので、ここでは割愛。 大まかな流れは後述の通り。
  1. 開発者アカウント作成
  2. プロバイダ新規作成
  3. チャネル(BOT)新規作成

BOTの動作確認

LINE Developersのトップページから、プロバイダ→チャネル→Messaging API設定タブと選択する。 2020.08.02時点で、応答メッセージ・あいさつメッセージがデフォルトで有効になっているのを確認。 QRコードを読み込んで、BOTをトークに追加してみる。 応答メッセージ・あいさつメッセージが動作することを確認。 今後のプログラミングで、応答メッセージが発動すると邪魔なので、応答メッセージを無効にしておく。

Screenshot_20200802-082901.png

プログラミング

チャネルアクセストークンとユーザIDの取得

プロバイダ→チャネル→Messaging API設定タブと選択していき、チャネルアクセストークン(長期)の発行ボタンでチャネルアクセストークンを発行し控えておく。 プロバイダ→チャネル→チャネル基本設定タブと選択していき、ユーザIDを控えておく。

Maven

2020.08.02時点での最新バージョンは後述の通り。

pom.xml

メッセージ送信プログラムの実装

LineMessagingClientを使って、自分のチャネルにメッセージを送信するプログラムを作成。 channelTokentoは、それぞれ控えておいたチャネルアクセストークンとユーザIDを使用する。

LineDemo.java


Screenshot_20200802-102810.png

いちおうKotlinバージョンも

LineDemo2.kt


Screenshot_20200802-103021.png


nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。