単純なものとして、BeautifulSoupを使ったHTML解析で
Googleの表示順位を取得するスクリプトを作ってみた。
んだから、もちろんBeautifulSoupと初期設定は必須。
そして、もちろんノンオブジェクト指向。
設定で指定した検索クエリ(q)を使用し、
Googleで検索結果を取得。
その中からURL(s)を発見したら表示するというもの。
単純なものとして、BeautifulSoupを使ったHTML解析で
Googleの表示順位を取得するスクリプトを作ってみた。
んだから、もちろんBeautifulSoupと初期設定は必須。
そして、もちろんノンオブジェクト指向。
設定で指定した検索クエリ(q)を使用し、
Googleで検索結果を取得。
その中からURL(s)を発見したら表示するというもの。
環境により違いがあるようだが、Pythonをインストールした
初期設定のままだと、'ascii'などが内部エンコーディングに使用されるようだ。
これにより、日本語の扱いで
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinalnot in range(128)
などとエラーを吐く場合も多々あるので
以下の箇所の設定を変更する必要がある。
BeautifulSoupが素晴らしいので
他にあまり解説サイトもないし、
簡単に使えそうなものを羅列してみた。
ただしデフォルトエンコーディングを設定している事が前提。
BeautifulSoupに渡されたHTMLは、
utf-8に文字コードを変換され自動で綺麗に生成しなおされる。
prettify()を使用すると、綺麗なソースに生成しなおされる。
※BeautifulSoup内で処理される場合は、このソースが元になる。
壊れたタグを修復という訳ではなさそうだが
改行やインデントを作り直してくれる。
Webアプリケーションとしても、かなり使えそう。
HTTPクライアントを作成するにあたり、
HTML解析周りが一番の難点となるのだが、
Pythonの標準ライブラリ(htmllib, HTMLParserなど)では、
壊れたHTMLを解析できないということなので
BeautifulSoupを試してみることに。
使ってみてぶっくり。いや、びっくり。
Perl厨には今までにない使い心地のパーサである。
しかも文字エンコーディングまで自動で取得してくれる。
インストールも超簡単なので是非使ってみるべきだ。
インストール方法
BeautifulSoupをダウンロード。
スクリプトのあるディレクトリ、もしくは
「Pythonのルートディレクトリ/Lib」に保存するだけ。
さて、本格的な使い方を追求してみようと思う。