コーディング規約メモ
Beautiful Soup 4へのポーティング
pythonで動作するHTMLとXMLのパーサーであるBeautiful Soupをバージョン3からバージョン4にポーティングした際のメモ(非常に簡単)。
【前提】
Beautiful Soup 4(以降BS4)はpython 2.6以上かpython 3で動作する。
【修正ポイント】
・パッケージ名の変更
BS4からパッケージ名が変わったので変更する。
(変更前)
from BeautifulSoup import BeautifulSoup
(変更後)
from bs4 import BeautifulSoup
・エンコーディングの指定形式の変更
ワーニングを消すために引数の名称を変更。
(変更前)
soup = BeautifulSoup(html, fromEncoding='Shift_JIS')
(変更後)
soup = BeautifulSoup(html, from_encoding='Shift_JIS')
以上でポーティング終了である。
【その他】
BS4で良いなと思ったのは、get_text()でタグに挟まれた文字列を取得する事が出来るようになった点。
stringとの違いは前後の空白を削除してくれる所。
【参考ドキュメント】
・Porting code to BS4 ― Beautiful Soup 4.0.0 documentation
ボットの環境メンテナンス等々
Google App Engineを利用してTwitterボットを幾つか動かしているのだが、Twitter API 1.0がそろそろ廃止されると言うことで、その対応のついでに色々やった事をメモしておく。
1. Twitter API 1.1対応
Twitter API 1.1に対応するという作業を実施。
といっても、Twitterへのポストはtweepyというライブラリを利用しているので、このtweepyをバージョン2.0にする事で対応終了(ただし、API 1.1で廃止されたインタフェース(friends_timeline()等)を使っている場合には、ボットのコード修正が必要になる)。
なお、自分が使っているtweepyのバージョンは__init__.pyを見れば確認出来る。
2. Google App Engineのデータストアの移行
こちらも、GAEのMaster/Slave Datastoreが廃止予定と言うことで、新しいHigh Replication Datastore(HRD)への移行を実施。移行は以下の記事に従って実施するとスムーズに終了した。
なお、移行に掛かった時間はおよそ30分である。
3. Pythonのバージョンアップ
いつの間にかGoogle App EngineでPython 2.5だけでなくPython 2.7が使えるようになっていたので、ボットで利用するPythonのバージョンも2.7に変更(Python 2.7を使うにはHRDに移行しておかないとダメな模様)。
具体的にはapp.yamlを修正して、runtimeをpythonからpython27に変える。あと、新たにthreadsafeの指定が必要になるのでtrueかfalseを指定する。
application: hoge version: 1 runtime: python27 api_version: 1 threadsafe: false
また、GoogleAppEngineLauncherのPreferencesでPython Pathを/usr/bin/python2.7等に変更して、ローカルのテスト環境もPython 2.7を利用するように変更しておく。
【参考記事】
【関連記事】
横浜市のPM2.5速報値をつぶやくTwitterボットを作成
横浜市環境監視センターが微小粒子状物質(PM2.5)の速報値をホームページ上で公開していたので、そのデータを定期的(1時間に1回)にポストするTwitterボット([twitter:@yokohama_pm25])を作ってみた。アイコンはHert01,incの[twitter:@hamushi]氏に作ってもらった。多謝!
ちなみに、環境監視センターによると、環境基準(人の健康を保護し、及び生活環境を保全するうえで維持されることが望ましい基準)は以下。
- 年平均値が15マイクログラム/立方メートル(μg/m³)以下であること。
- 日平均値が35マイクログラム/立方メートル(μg/m³)以下であること。
【関連記事等】
はてなブックマーク8周年おめでとう
はてなブックマーク8周年キャンペーンを開始しました - はてなブックマーク日記 - 機能変更、お知らせなどを見て、はてなブックマークが2月10日に8周年を迎えていた事を知った。
8周年なのでサービスが始まった日は2006年2月10日。この4ヶ月後の6月には今は亡きlivedoorクリップがサービスを開始していた。ちなみにその2ヶ月後にmixiがマザーズに上場。そんな時期だったか。
で、ふと自分がはてなブックマークを使い始めたのはいつ頃だったかが気になったので調べてみた。結果、2006年4月12日が最初であった。しかし最初にブックマークした記念すべきサイトflashmind.jpは既にサービス終了していた…。ちなみに、はてなブックマークの前はDeliciousを主に使っていた気がする。
・はてなブックマーク - tomuteのブックマーク / 2006年4月12日
なお、自分の最初のブックマークは、総ブックマーク数が3000だとしたら、以下のURLで表示させる事が出来た。
http://b.hatena.ne.jp/tomute/bookmark?of=2999
【参考資料】
・http://i.impressrd.jp/e/2007/08/20/124
・「livedoor クリップ」のサービス提供終了のお知らせ : livedoor クリップ開発日誌
中点「・」の話
諸事情で中点「・」についてちょっと調べたので、その時学んだ事をメモしておく。
【読み方】
中点はWikipedia等を見ると中黒(なかぐろ)とも読む模様。
また、中点は「ちゅうてん」と読むと思っていたが、「なかてん」とも読む模様。
英語に訳すとInterpunct、middle point、middle dotとかだろうか。
【種類】
中点には全角の中点と半角の中点しか無いと思っていたのだが、ラテン文字の中点やビュレット等、他にも色々あった。
ちなみにビュレットは箇条書きの一項目を示す印の事。そんな呼び名であることを今まで知らなかった。
【文字コード】
名称 | 記号 | Unicode | UTF-8 | 入力方法(Mac + Google日本語入力) |
---|---|---|---|---|
全角の中点 | ・ | U+30FB | 0xE3 0x83 0xBB | 「てん」で変換等 |
半角の中点 | ・ | U+FF65 | 0xEF 0xBD 0xA5 | 不明 |
ラテン文字の中点 | · | U+00B7 | 0xC2 0xB7 | Shift + option + 9 |
ビュレット | • | U+2022 | 0xE2 0x80 0xA2 | option + 8 |