Code is beautiful

2011-01-19

Pythonでスクレイピングしたい

例えば、SJISのサイトをスクレイピングして、UTF-8で出力とか文字コード周りが全然分かってなくてハマった。

どうもPython内部ではUnicodeで処理してるので、一旦Unicodeに変換(decode)してから、UTF-8に変換(encode)するという事らしい。

UnicodeUTF-8を一緒にしてた事がマズかったと。

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import urllib2

url = "http://hoge.hoge"
contents = urllib2.urlopen(url, "rb").read().decode("shift_jis").encode("utf-8")

なるほどなぁ。

2010-10-19

Python始めました。

興味はあったものの、決して指は動かなかったPythonを何となくスタート。

開発環境はWindows

Python標準リリースよりインストーラーをダウンロードしてインストール

C:\usr\bin\pythonなり、C:\usr\local\bin\pythonなりにパスを通す。

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

print "Content-Type: text/html\n\n"
print "Hello, world!"

と書いてlocalhostからアクセスすると無事Hello, world!。

UNIXサーバにアップする時は改行コードをLFに。


いきなり、-*-とか謎過ぎるとか思ったけど、

悪いが amachang、Perl は後回しだ! - 暗号、数学、時々プログラミング

より、Emacs用との事。


文法なりはWeb上を駆けずりまわって、まずはDotshopサーバ側をサクッと移植してみた。

中々面白いけど、WebアプリにはやっぱPHPが楽だなぁ。