先達はあらまほしきものなり

| トラックバック(0)
ウェブ検索(Yahoo!API利用)ニュース検索(GoogleニュースのAtom形式出力をパース)を作ってみた。 その過程でいくつかの懸案が解決し(または見切りをつけ)た。

モジュールの配置ってそもそもどうするのが普通なのか

何が正解かはよく分からない。site-packagesにファイルを置くと、とかeasy_installというシロモノに関する情報もあるが……。
sys.pathというリスト(通っているパスがすべて入っている)に適当なディレクトリを突っ込む、という方法が簡単そう&とりあえず動いたのでこれでいく。

PathInfoからの引数取得

os.environというディクショナリにPATH_INFOというそのものずばりの値が。これをスラッシュで区切って使う。PathInfoからの引数取得は今後も多用しそうなので共通の関数を定義しておこう。os.environにはこの他にも標準的な値が一通りそろっている模様。smartyだったら予約変数$smartyの中に全部詰め込んであったのだが、似たようなものはなさそう。

リダイレクト

self.redirectでできる、ということを見つけるのに時間がかかった。

URLエンコード、デコード

urllib.quote_plusがおそらくそのものずばりだが、encode('utf-8')をつけてやらないとエラーが出る。かなりはまった。ウェブリクエスト用にkey=valueの形式にエンコードするならurllib.urlencodeを使うのが便利。

XMLの取得、パース

各種のAPIを使うにせよ、RSSを読み込んで表示するにせよ、XMLをパースする仕組みは必須。標準でもいろいろあるようだが、BeautifulSoupが手軽そう。実際手軽だったが、タグのアトリビュートの扱いがややこしくてちょっと泣いた。ウェブ越しにXMLを取り込むのはGAE名物urlfetchを使うのが礼儀というものだろう。

なんか表示するたびにエラーが出る…

デフォルトエンコーディングを変更してやらないとデフォルトでasciiになっているらしい。グローバルだこと。

正規表現

Googleの返してくるXMLがタグだらけ。正規表現の出番。

トラックバック(0)

トラックバックURL: http://manabu.s176.coreserver.jp/mt5/mt-tb.cgi/2174


アーカイブ

Books

軽装版 風と行く者 (軽装版 偕成社ポッシュ) AI白書 2017 深層学習 (機械学習プロフェッショナルシリーズ) 昭和元禄落語心中(1) (KCx) 昭和元禄落語心中(2) (KCx) 昭和元禄落語心中(3) (KCx) 昭和元禄落語心中(4) (KCx) 昭和元禄落語心中(5) (KCx) 昭和元禄落語心中(6) (KCx) 昭和元禄落語心中(7) (KCx) 昭和元禄落語心中(8) (KCx) 昭和元禄落語心中(9) (KCx) 昭和元禄落語心中(10)<完> (KCx) 未来の年表2 人口減少日本であなたに起きること (講談社現代新書) 進撃の巨人(28) (講談社コミックス) 琥珀の夢 上 小説 鳥井信治郎 琥珀の夢 下 小説 鳥井信治郎 闇のパープル・アイ (2) (少コミフラワーコミックス) 闇のパープル・アイ (3) (少コミフラワーコミックス) 闇のパープル・アイ (4) (少コミフラワーコミックス) 闇のパープル・アイ (5) (少コミフラワーコミックス) 闇のパープル・アイ (6) (少コミフラワーコミックス) 闇のパープル・アイ (7) (少コミフラワーコミックス) 闇のパープル・アイ (8) (少コミフラワーコミックス) 闇のパープル・アイ (9) (少コミフラワーコミックス) 闇のパープル・アイ (10) (少コミフラワーコミックス) 闇のパープル・アイ (11) (少コミフラワーコミックス) 闇のパープル・アイ (12) (少コミフラワーコミックス) 教科書名短篇 - 少年時代 (中公文庫) ゼンデギ (ハヤカワ文庫SF) シルトの梯子 (ハヤカワ文庫SF) クロックワーク・ロケット (新☆ハヤカワ・SF・シリーズ) エターナル・フレイム (新☆ハヤカワ・SF・シリーズ) アロウズ・オブ・タイム (新☆ハヤカワ・SF・シリーズ) 生まれ変わり (新☆ハヤカワ・SF・シリーズ) 昨日がなければ明日もない 烏は主を選ばない 八咫烏シリーズ 2 (文春文庫) 黄金の烏 八咫烏シリーズ 3 (文春文庫) 空棺の烏 八咫烏シリーズ 4 (文春文庫) 巨星 ピーター・ワッツ傑作選 (創元SF文庫) 取締役の法律知識 (日経文庫) ユダヤ教徒に見る生き残り戦略

Link

Feed

このブログを購読

Follow

follow on Twitter

Counter

207814768