#python
ネパールとプログラミング
#旅

ネパールとプログラミング

こんにちは、僕です! (Dev7期 町井)

少し旅行記を。

去年の冬、中国成都からネパールのカトマンドゥとルンビニを1週間ほど旅行してました。ルンビニは2500年前に釈迦族の王子のシッダールタが生まれた現在でも世界各国から仏教徒が集まる聖地。アジアは仏教遺跡が多いので観光すると自然と聖地巡礼になり、ありがたい旅行になるという効果があります。

標高3000メートルの空に浮かぶ都カトマンドゥからインド方面の山を降りていく感じで
バスで下界に降りて行き、約一日経つとルンビニに到着。BGMはゴダイゴのガンダーラを聞く。

15622571_10154175521008263_1913472332708586689_n.jpg

ジャッキーチェンのプロジェクトイーグルやインディージョーンズの魔宮の伝説ばりの冒険を求めるわけではないが、ここら辺りではもうすでに旅行感がなく秘境感はなく、ましてテクノロジー感は皆無。1300年前、唐の三蔵玄奘は仙人や道士が住むという崑崙山脈を超えて当時天竺と言われたインド北部、チベット、パキスタン北部のあたりまで経典を求めにきたらしく、もちろんルンビニにもきていたようで、銅像が立っていました。

15590123_10154170234858263_3951561596787773578_n.jpg

ルンビニには、世界各国の仏教徒が立てたお寺があり、ビートルズ、グランジロックのニルヴァーナが求めた悟りの境地ニルヴァーナ=涅槃を体験できるらしくお寺で座禅体験。静かに何も考えず、考えるのをやめ、座禅を組みお教がステレオから流れる。空間も時間もない頭の頭上の意識を感じることが涅槃だということに2500年前にブッダは悟ったらしい。僕も試しにやってみた。

15622490_10154175519293263_3613415601655639353_n-1.jpg

PythonでWebスクライピングしたお経を自分のメールアドレス宛へ

あれから1年、今年は、クリスマス前だが1300年前に三蔵法師が天竺から持ち帰った
ありがたい仏典の抽出を最近習ったPythonで実施してみることにした。

赤枠の部分が抽出する対象。

スクリーンショット 2017-12-20 20.03.19.png

抽出先のサイト:
http://web1.otani.ac.jp/cri/twrpw/results/e-texts/tathang_siyuekyi/
(西蔵文献研究班)

前提条件:

Python のインストール
Anacondaのインストール

以下のサイトから Anaconda をダウンロード。

https://www.continuum.io/downloads
インストールするときに Python のバージョンを選択する必要があります。

Python のバージョンとして 2.7 と 3.x があります。
インストールしたら画面上のJupyter Notebookをクリック。

スクリーンショット 2017-12-20 15.26.02.png

画面右側にあるNewボタンをクリック。Pythonのバージョンを選択できるので
インストールされているバージョンを選択。今回は3.xを使用。

スクリーンショット 2017-12-20 15.26.27.png

実行環境が表示されるので実行したいコードを1行または数行つづ書いて実行。

スクリーンショット 2017-12-20 15.26.41.png

以下のスクリプトを記載してAnaconda内のジュピターノートブックで実行。
requestsと BeautifulSoupをimportして外部にあるモジュールを使用可能なようにする。url = は今回の対象となるurlを記載する。lxmlはhtmlのパーサ。

import requests
url = "http://web1.otani.ac.jp/cri/twrpw/results/e-texts/tathang_siyuekyi/"
response = requests.get(url)
response.status_code
from bs4 import BeautifulSoup
bs = BeautifulSoup(response.content,"lxml")

以下のpの部分は、Webページを右クリックして画面の検証を行い、Webページでどの箇所をWebページから抽出した以下のタグを記載する。pはhtml文章タグだからWebページ上の一番上からはじめにくる文章の抽出を指定している。今回は、対象となるのはチベット文字フォントだから上から4番目のpタグになるためtopic[4]と指定。

topics = bs.select('p')
topics[4]

以下の意味がわからないからありがたいチベット文字を抽出。

[1b1]༄༅༅། །ན་མོ་གུ་རུ་མཉྫུ་ཤྲཱི་ཡེ། རྒྱ་ནག་སྐད་དུ། ཏཱ་ཐང་སིའི་ཡུས་ཀྱིས། བོད་སྐད་དུ། ཆེན་པོ་ཐང་གུར་དུས་ཀྱི་[1b2]རྒྱ་གར་ཞིང་གི་བཀོད་པའི་ཀར་ཆག། སྟོན་པ་བླ་ན་མེད་པ་བཅོམ་ལྡན་འདུས་ཤཱཀྱ་ཐུབ་པ་ལ་ཕྱག་འཚལ་ལོ། །སྔོན་ནི། སངས་རྒྱས་སྟོང་གི་[1b3]ཞབས་ཀྱི་བཅགས་པ་ཡི། །རྒྱ་གར་འཕགས་པའི་ཡུལ་ལ་ཆེན་པོ་ལགས། །དེ་དག་སོ་སོའི་ཆར་གཏོགས་མི་གཏོང་དང་། །ལམ་གྱི་ཡུལ་[1b4]དང་ཉེ་བར་མཐོང་བའི་ཡུལ། །ལ་སོགས་ཡུལ་གྲུ་ཆེ་ཆུང་བརྒྱ་ལྔ་བཅུའི། །ཡུལ་ལུགས་ས་ཚིགས་གྲུབ་ཚུལ་ལ་སོགས་པའི། །བཀོད་པ་[1b5]ཐང་དུས་ཡིག་ཚང་རྙིང་པོ་དག །བསྔུས་ཏེ་ལོ་ཆེན་སྡེ་སྣོད་གསུམ་འཛིན་པ། །ཐེག་ཆེན་ལྷ་ཡིས་རྒྱ་ནག་སྐད་དུ་བརྩམས། །བམ་པོ་བཅུ་[2a1]ཕྲག་གཅིག་བྱུང་ཕལ་ཆེ་བའི། །དོན་རྣམས་བསྔུས་ནས་ཇི་ལྟར་ནུས་བཞིན་དུ། །བོད་ཀྱི་ཡི་གེར་བྲིབ་འདི་བཞིན་[2a2]ནོ༈ ༈དེ་ཡང་སྦྱིར་མི་འཇིད་འཇིག་རྟེན་གྱི་ཁམས་དང་། བྱེ་བྲག་ཏུ་གླིང་བཞི་པའི་འཇེག་རྟེན། ཡང་སྒོས་འཛམ་བུ་གླིང་གི་བཀོད་པ་རགས་རིམ་དང་།[2a3]གསེར་དངུལ་ཟངས་ལྕགས་ཀྱི་འཁོར་ལོས་བསྒྱུར་བ་རྣམ་པ་བཞི་བྱུང་བ་དང་འབྱུང་འགྱུར་སོགས་བསྟན་པ་རྣམས་ནི་ཡོངས་སུ་གྲགས་པའི་ཆོས་མངོནདུ་བསྣོལ་བ།[3a3]མཁར་རྫོང་རྣམས་སུ་བརྩིགས་པའི་ཁང་པར་སྡོད་པའོ། །

スクリーンショット 2017-12-22 11.51.08.png

以下のスクリプトで抽出したありがたいお経を自分のメールアドレス宛に
毎朝送信して早朝から幸せな気持ちになるありがたやスクリプトを実行。

import smtplib

conn = smtplib.SMTP("smtp.gmail.com", 587)
type(conn)
conn.starttls()
conn.login("Your Mail Address", "Your Password")
conn.sendmail("送信するYour Mail Address", "受け取るYour Mail Address", "Subject:  \n\n topics[4]  \n\n -AI")

*現時点の問題点、上記変数 topics[4]をメールしてもチベット語のまま文字が送信されずに文字化けしてしまう。まだ全コードを纏めていないため1発で送信可能なようになっていないことと時間を指定してメール送信することが未実装。あと少し。このお経をPepeerくんに送信してPeperrくんがチベット語でお経を唱えるとかできないかなと、、もしくは受信したIOTマニ車が自動でクルクル回るとか。いかがわし過ぎる。

images.jpg