概要
pyqueryを利用してスクレイピングをする。
気象庁のWebサイトから過去の気象データを取ってみる。
注意点
スクレイピングは相手サーバに負荷をかけないように注意すること。この記事を参考にして、問題が発生しても一切責任は取らない。自己責任でどうぞ。
pyquery について
jQuery 風にHTML/XML が操作できるのが特徴。パーサーに lxml を利用するのでパース速度も高速で、lxml に可能なことは、大体可能。
この分野だと、beautifulsoupも有名。pyqueryとどちらを利用するかは好みの問題。
pyquery のインストール
pip でインストールできる。lxml に依存している。
pip install pyquery
サンプルソース
2012年8月の東京の平均気温を取得するサンプル。
以下のサンプルはまったく汎用的にしてないが、jQueryを知っていればかなり簡単。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pyquery import PyQuery as pq
def main():
# 気象庁 東京 2012年8月データ
url = ('http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?'
'prec_no=44&block_no=47662&year=2012&month=8&day=&view=')
# pyquery
query = pq(url, parser='html')
# title の取得
title = query('title').text()
# 日毎を取得
day = query('.data_0_0')
print title
for i, item in enumerate(day):
if i % 20 == 5:
print('{:02d}日の平均気温 {} ℃'
.format(i / 20 + 1, pq(item).text()))
if __name__ == '__main__':
main()