Pythonでのスクレイピング

Pythonではじめてやったスクレイピングの記録
自分が覚えておく用

敵は気象庁

import requests
import lxml.html

r = requests.get('http://www.data.jma.go.jp/obd/stats/etrn/view/monthly_s1.php?prec_no=44&block_no=47662&year=2015&month=1&day=&view=')
r.encoding = 'utf-8'
r_html = r.text
root = lxml.html.fromstring(r_html)

requests.getでurl先のResponseオブジェクトを生成
r.encoding でエンコーディングを直す
r.text でオブジェクトのhtmlを取得
root = lxml.html.fromstring(r_html)

で取得したhtmlをxmlとしてrootに格納?(この表現であってるのか…)
あとlxml.htmlでimportしないとlxml.html使えないんですねimport lxmlで全部importすると思ってました

あとはroot.xpath('//a')とかして中身を参照できる
テキストとして子要素を取り出す場合

str = root.xpath('//a').text

とかして取り出せる。

JavaScriptのときはまた別でPhantomJSというものを使うらしい。
使うことになったら書く。


はてブでコードを書き込むとき
[はてな記法]ソースコードを色付けして表示する(シンタックスハイライト) - はてなブログ ヘルプ
の内容を使えばコードがハイライトされる。