find_all後にfind_allしたいときのやり方

# 必要なモジュールのインポート

import BeautifulSoup

import re
try:
     # Python 3
     from urllib import request
except ImportError:
      # Python 2
     import urllib2 as request

 

# HTML をパース

# urlはスクレイピング対象 ex) url = http://www.hoge.co.jp/content

response = request.urlopen(url)
body = response.read()
soup = BeautifulSoup(body)

 

# find_all 後に find_all

for elem in soup.find_all('td'):

     print elem.find_all('a') # タグtd中のタグaの全要素をprint

 

-----

for 文で回すだけでした.

elem.find_all('td').find_all('a') をしてた自分はアホだ...

ワイルドカードでタグ検索

# 必要なモジュールのインポート

import BeautifulSoup

import re
try:
     # Python 3
     from urllib import request
except ImportError:
      # Python 2
     import urllib2 as request

 

# HTML をパース

# urlはスクレイピング対象 ex) url = http://www.hoge.co.jp/content

response = request.urlopen(url)
body = response.read()
soup = BeautifulSoup(body)

 

# ワイルドカードでタグ検索
soup.find_all(href=re.compile(".*"))

Dockerコンテナ内で日本語環境の設定

コンテナ内で以下を実行

# apt-get install language-pack-ja-base language-pack-ja
# vi ~/.bashrc
...
export LANG='ja_JP.UTF-8'

Spyder with python2/3 で自動補完(Autocomplete)が使えないときの対処法

以下のパッケージをインストール.

[Python2]

$ pip install rope

[Python3]

$ pip install rope-py3k

Python2と3でパッケージ名が違うという罠...

さくらクラウドにGUI開発環境を作る(xrdpではない方法)

知人から2万円分のさくらクラウドクーポンを貰い,サーバーを作成してみた.接続は簡単!さくらクラウドのコントロールパネルに表示されるIPアドレスsshなどでアクセスするだけ.

これだけでも十分使えるものの,CUIではなくGUIで開発環境を立てたい.

今回は,Windows10のPCからさくらクラウド上のUbunt Server 16.04に接続したときのGUI環境構築方法を紹介.

 

今回キーとなるアプリを最初に言っておく.

 

  • 高機能sshクライアント「MobaXterm」
  • 動作が軽快なxfceファイルマネージャー「Thunar」
  • 分割できるターミナル「Terminator」

 

 

ここから設定方法の手順

----------------------------------

接続元のWin環境にMobaXtermをインストール.

MobaXtermは標準でXserverが起動している.このため,何の設定も無しにサーバー上のGUIアプリを接続元で起動することができる.

mobaxterm.mobatek.net

 

MobaXtermでさくらクラウド上のサーバーへssh接続した後,ひとまず以下のコマンドを打つ.

$ sudo apt-get update

$ sudo apt-get upgrade

 

次に,「Thunar」と「Terminator」をインストール.

$ sudo apt-get install terminator

$ sudo apt-get install thunar

### 上記のコマンドだけはthunarのアイコンが出てこない為以下で対処 ###

$ sudo apt-get install gnome-icon-theme-full

 

以上で,GUI環境構築は完了である.

今回の方法による改善点は,

  • 「MobaXterm」で余計な設定をせずにサーバー上のGUIアプリを起動.
  • 「Thunar」でCUIでは面倒なファイルの転送をGUIで実行可能に.
  • 「Terminator」でターミナルが1つのアプリの起動で占有される問題を解消.

である.

後はユーザーの好みで他のアプリを追加してゆけばよい.基本はこれでなんとかなるはずだ.

 

最後に

----------

今回構築した環境を2週間ほど使用したものの,開発に不便は感じなかった.

ファイルマネージャーがあるだけで,開発の効率はだいぶ変わる.

他のブログを見て回るとxrdpをインストールしてリモートデスクトップ接続する方法が主に紹介されている.今回の方法は王道ではないのかも知れない.

xrdpの設定で詰まったときの回避策にしてはいかがでしょうか。

Surface pro 3 でスクリーンショット

全画面のスクリーンショット
Win+Space+Fn

アクティブウィンドウのみのスクリーンショット
Win+Space+Fn+Alt

 

WinキーとFnキーを押した後にSpaceを押すと撮りやすい。

デフォルトの保存先
C:UsersPicturesScreenshots

[MAYA2017]Arnoldで360°パノラマ動画をレンダリングしてみる

最近,VRが流行り始めパノラマ動画の需要が高まっているようだ.そこで今日はMAYAを使ったパノラマ動画のレンダリングを試してみる.

テストシーンの用意

自前でシーンをつくれる能力をもつ人にとっては必要のない工程だが,私のようにシーンをつくれるほどの能力をもたないMAYA初心者には必要な工程だ.そこでArnoldが提供するTutorial

https://support.solidangle.com/display/AFMUG/Learning+Scenes

から適当にサンプルを拾ってくる.今回私が拾ってきたのは中世の農村を彷彿とさせる"Model Village"である.

f:id:Vastee:20170521105623j:plain

"Model Village"

Arnoldはデフォルト設定だとノイズがでやすい.上のシーンでもノイズが各所にでている.改善方法は他のサイトで多々紹介されているのだが,面倒だったので今回はやらない.

パノラマカメラの設置

さて,はじめにシーン中にパノラマカメラを設置しよう.しかし,パノラマカメラはカメラのメニューには存在しない.そこで,通常のカメラを設置後に,
カメラの設定タブ(アトリビュートエディタ)> Arnold > Camera Typeと選択してゆき,Camera Type を Spherical に変更する.
f:id:Vastee:20170521124523p:plain
すると,通常のカメラがパノラマカメラになる.上部のタブメニューより,Arnold > Arnold Render View を開く.Arnold Render View はリアルタイムで高速レンダリングする驚きのビュワーだ.先ほど設定したカメラを選択すれば,360°見渡せるパノラマ画像が確認できる.また,Arnold Render Viewは画像の書き出しも可能だ.

f:id:Vastee:20170521125234j:plain

"Arnold Render Viewで書き出したパノラマ画像"

Arnoldにおける動画のレンダー設定

さて,レンダー設定を行うステップにはいる.
以下に手順を示す.

  1. レンダー設定を開く.
  2. 連番画像のフォーマットの指定.
  3. 連番画像の名前と拡張子の指定.
  4. 出力動画のフレーム設定.

f:id:Vastee:20170521162052p:plain

2. で,なぜ動画のレンダリングなのに.aviや.mp4などの動画のフォーマットを選ぶ項目が無いのか疑問に思うかもしれない.それは,Arnoldがコマ送りの連番画像をレンダリングするためである.このため,レンダー設定中のイメージフォーマットはそれぞれの連番画像のフォーマットを指すことになる.

3. で,出力される連番画像の名前と拡張子を指定する.ここで"名前(単一フレーム)","名前.拡張子(単一フレーム)"を選択すると連番画像のレンダリングが行えなくなる.(単一フレーム)が付いていない項目を選ぼう

f:id:Vastee:20170521164132p:plain

レンダー設定を済ませれば,いよいよレンダリングだ.


パノラマ動画のレンダリング

面倒なパラメータの設定を済ませ,いよいよレンダリング!と思うが,Arnold Render Viewのレンダリングのボタンを押しても単一画像しかレンダリングされない...
実は,レンダリングのタブ(下図参照)のバッチレンダーを押すことで動画が出力されるのだ.なんとも分かりずらい.f:id:Vastee:20170521155626p:plainデフォルトの出力先は私の場合C:\Users\Documents\maya\projects\default\imagesであった.出力された連番画像はffmpeg等で結合させ,動画にすることができる.

以上,初めてのブログ執筆なので疲れた...