読者です 読者をやめる 読者になる 読者になる

アドベントカレンダー13日目の編集後記(GASのHTMLService、GAEの開発サーバー起動バッチ、Pythonのlxml等)

GoogleAppsScript GoogleAppEngine

アドベントカレンダーのネタ向け調査のまとめ、今回は13日目のネタの編集後記(リンク多め)となります。
Google CloudSQLとGoogleAppsScriptのHTMLServiceでアルクマを追いかける - メモ的な思考的な

GASでHTML+Googleマップの実装例

以下の記事を見つけたことで、HTML+Googleマップを扱えると考え、ネタとして使用することを決めました。
so what?: GASのHtmlServiceがまじでスゴいらしいのでアプリを作ってみた



GASのテンプレートHTMLについて

Googleマップの内容がある程度動的に変更となるため、GAEのようなHTMLのテンプレートが使えればと思い、調べました。
以下の記事による方法にて、GASのメソッドの結果をテンプレートHTMLへと反映できることが分かりました。

Googleマップのマーカーの画像について

当初、FlickrGoogleドライブ、Picasaへ保存したものを利用しようと考えていましたが、Google StaticMapAPIのマーカー画像はHTTPS接続のものは取得できないことが分かりました。
そのため、9日目のGAE側で用いたpngファイルをHTTP接続で持ってきて、マーカーの画像として利用することにしました。

なお Static Maps API では、HTTPS を使用するカスタム アイコンの URL はサポートされていないため、デフォルトのアイコンが表示されます。
Static Maps API V2 デベロッパー ガイド - Google Maps Image API — Google Developers


なお、Picasaの写真だけを公開するには、以下を参考にすればできるようになります。画像ではhttp接続のURLですが、現在はhttps接続のURLとなっています。
clmemo@aka: Picasa Web Albums で写真の埋め込み用リンク URL を表示させる



Pythonでのlxmlによる解析について

以下の記事がいろいろと詳しく記載されているため、参考になりました。
今回、目的のデータは.textでは取得できなかったため、.text_content()を使いました。
Gentleちゃれんじ Tips -lxmlでhtmlを処理する-


なお、HTMLソースを見ると出てくる「tbody」タグは、実際にはマークアップされていないことが多いようです。
そのため、tbodyタグ指定をしなくても、tableタグ以下のデータは取得できるようです。

GAEの開発サーバーのログで日本語を表示

Google App Engine Launcherでは日本語が文字化けするため、lxmlの解析結果が正しいのかどうか分かりませんでした。
そのため、バッチファイルからGAEの開発サーバーを起動するようにして、日本語が文字化けしないようにしました。

@echo off
python "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py" --mysql_user=root --mysql_password=<mysql password> "<app.yamlが置いてあるディレクトリ名>"
pause

Google App Engine コマンドでテストサーバーを起動し、ログの出力を行う - Symfoware