Seasons.NET

ちょっとした技術ブログです

BeautifulSoupを使う時にはまったこと

BeautifulSoupですが、色々さわっていて
わかったことがあります。

"<IMG class=pict height=150 alt=画像.jpg hspace=5 src="http://hogehoge.jpg" width=180 align=left border=2>"

こんなタグがあったときにすんなり解析できそうですが、
alt以降がパースされず、スクレイピングできないようです。
これを解析してもらうには、alt="画像.jpg"とする必要があるようです。
これはコードにパッチ当てるしかないかもしれません・・・

しかも出力する際に、
元の文字コードがShift-jisの時、

sys.setdefaultencoding("shift-jis")
for x in soup.findAll('img'):
	print x['src']

としないと正しく表示されません。
sys.setdefaultencodingは、encodeする際の
デフォルトエンコードを指し、指定しない場合は、asciiとして解釈してしまうので、
??????として表示されます。

意外と日本語を扱うのは、面倒な設定だなという感じです。