PythonでBeautiful Soupを試してみる。

PythonでHTMLの解析を行うのによさそうだったので、
試してみることにした。

まず必要なのが、

BeautifulSoup

まずインストール(ってかファイルをPythonが読める場所にBeautifulSoup.pyを置くだけ。)

ここからダウンロードする。
それを今回は「site-packages」の下に置いてみた。
清水川Webを参考にさせてもらったためです。

やってみます。

>>> import urllib2
>>> opener = urllib2.build_opener()
>>> html = opener.open(‘https://kishi-r.com/2008/02/ubuntu_1.html’).read()
>>> print html

HTML内の情報が表示されました。
ここでBeautifulSoupを使って「title」のみを解析してみます。

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> soup.find(‘title’,)
<title>kishi-r.com: Ubuntuをインストールしました。</title>

取れたっすね。

他にも「td」を検索してみる。

>>> soup.findAll(‘td’,)
[<td>
</td>, <td>
</td>, <td>
</td>, <td>
</td>, <td>
</td>, <td><span class=”today”>
<a href=”https://kishi-r.com/2008/02/01/”>1</a>
</span></td>, <td><span class=”calendar”>
2</span></td>, <td><span class=”calendar”>
3</span></td>, <td><span class=”calendar”>
4</span></td>, <td><span class=”calendar”>
5</span></td>, <td><span class=”calendar”>
6</span></td>, <td><span class=”calendar”>
7</span></td>, <td><span class=”calendar”>
8</span></td>, <td><span class=”calendar”>
9</span></td>, <td><span class=”calendar”>
10</span></td>, <td><span class=”calendar”>
11</span></td>, <td><span class=”calendar”>
12</span></td>, <td><span class=”calendar”>
13</span></td>, <td><span class=”calendar”>
14</span></td>, <td><span class=”calendar”>
15</span></td>, <td><span class=”calendar”>
16</span></td>, <td><span class=”calendar”>
17</span></td>, <td><span class=”calendar”>
18</span></td>, <td><span class=”calendar”>
19</span></td>, <td><span class=”calendar”>
20</span></td>, <td><span class=”calendar”>
21</span></td>, <td><span class=”calendar”>
22</span></td>, <td><span class=”calendar”>
23</span></td>, <td><span class=”calendar”>
24</span></td>, <td><span class=”calendar”>
25</span></td>, <td><span class=”calendar”>
26</span></td>, <td><span class=”calendar”>
27</span></td>, <td><span class=”calendar”>
28</span></td>, <td><span class=”calendar”>
29</span></td>, <td>
</td>]

で取れました。

このBeautifulSoupを使った記事でおもしろそうだったのが、
Googleニュースで指定した単語を検索して、ヒット数を返すサンプルなどがありました。
とりあえず試してみようっと。

Pythonでtwitterを試してみたっす。

周りがtwitterを使っていて、
気になったので使ってみた。

twitter自体あんまりやる気が無く、
全く使用していなかったが
Pythonでならって事で触れてみた。

試すのに必要なのが下記。
こちらは「カノエメモ」を参照。

・ simplejson
・ python-twitter

でsimplejsonをインストール。
(Djangoが入っていたので今回はそちらを使用したっす。)

$ sudo /usr/local/python25/bin/easy_install-2.5 -U -Z simplejson

で入るのかな?

python-twitterもインストール

$ sudo easy_install python-twitter

で入りました。

実際に試してみる。

>>> import re
>>> import twitter
>>> api = twitter.Api(username=’testname’, password=’testpasswd’)
>>> status = api.PostUpdate(u’早くスノボーに行きたいなぁ~’)

こんな感じで更新された。

でもちょっとAPIを通すと更新される速度が遅いなぁ~。

後は、
やっぱりタイムラインを取得したいので試してみた。
kuma8さんのサイトに記載されていました。

>>> ft = api.GetFriendsTimeline()
>>> for f in ft:
… print ‘%s: %s’ % (f.user.screen_name, f.text)
….
kishir: 早くスノボーに行きたいなぁ~
soundkitchen: @kishir あーてすてす
kishir: もう少ししたら休憩行く
kishir: Pythonでtwitterを試してみる
kishir: Googleの関連検索を調べてみる。
yoshuki: うまい棒 ウマー
soundkitchen: 朝ご飯。朝ご飯。
soundkitchen: 生活のリズム壊れてるなー。
soundkitchen: ようやく起床。
soundkitchen: ご飯を食べよう。
soundkitchen: ご飯は何を食べようかなぁ?
soundkitchen: 腹減った。
soundkitchen: 抜群にあったまった!
soundkitchen: お風呂はいってあったまる。

こんな感じっすね。

次に自分のタイムラインのみを取得してみる。

>>> for g in gut:
… print ‘%s’ % (g.text)
..:

早くスノボーに行きたいなぁ~
もう少ししたら休憩行く
Pythonでtwitterを試してみる
Googleの関連検索を調べてみる。
これから渋谷です。

にしてみようかなぁ~。
MacMiniより安くて手ごろだし。
GoogleGearsを試したよ~。

取れた、取れた。
これを自分のブログとかに表示出来るように
実装してみるとおもしろいかも。

他にもtwitter.pyを見ると

>>> api.PostDirectMessage(user, text)
>>> api.GetUser(user)
>>> api.GetReplies()
>>> api.GetUserTimeline(user)
>>> api.GetStatus(id)
>>> api.DestroyStatus(id)
>>> api.GetFriendsTimeline(user)
>>> api.GetFriends(user)
>>> api.GetFollowers()
>>> api.GetFeatured()
>>> api.GetDirectMessages()
>>> api.PostDirectMessage(user, text)
>>> api.DestroyDirectMessage(id)
>>> api.DestroyFriendship(user)
>>> api.CreateFriendship(user)

なんてものがあったので、
色々と出来そう。
ちょこちょこ試してみようっと♪

Pythonを勉強中 vol.13

今年に入ってから、
忙しく何も出来ていなかった。。。

久々にPythonのチュートリアルを読んでみた。

末尾にコンマを入れると、出力を行った後に改行されません

お?まじで?
知らなかったっす。。。

ちょっと見てみたかったので、
試してみよう。
まずは普通に出力してみる。

>>> a, b = 0, 1
>>> while b < 1000:
… print b
… a, b = b, a+b

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987

次に改行を入れてみるので、

「コンマ」を入れる。

>>> a, b = 0, 1
>>> while b < 1000:
… print b,
… a, b = b, a+b

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

おぉ~なった、なった。
なるほどね。
コンマ自体が改行を入れないようになっているのかぁー!

>>> a = ‘sukiyaki’
>>> b = ‘western’
>>> c = ‘django’
>>> print a, b , c
sukiyaki western django

こんな事も出来るんだね。

ちなみに2008年2月6日にDVDが出るみたいっすね。
もうちょいだぁー!
早くみたいなぁ~。

Pythonを勉強中 vol.12

今日はPythonの日時に関して試してみた。

今作っているブログでURLを生成するのに
日付が絡んでくるためっすね。

まずは必要なライブラリをインポート。

>>> import time
>>> import datetime

現在の日付を取得する。

>>> now = datetime.date.today()
>>> print now
2007-12-26

年月日の形式にしてみる。

>>> print now.strftime(‘%Y年%m月%d日’)
2007年12月26日

ブログのURL的なものを生成してみる。

>>> print ‘%s/%s/’ % (now.strftime(‘%Y/%m/%d’), ‘slug’)
‘2007/12/26/slug/’

これをDjangoで応用してみた。
Djangoだとurl.pyによりurlが管理されているので、

@models.permalink
def get_absolute_url(self):
return (
‘weblog’,
[self.post_date.strftime(‘%Y’), self.post_date.strftime(‘%m’), self.slug]
)

のようになったっす。

後、
PHPだと

print date(‘Y-m-d H:i:s’)

2007-12-26 18:39:43

なものをPythonでやってみる。

>>> print datetime.datetime.today().strftime(‘%Y-%m-%d %H:%M:%S’)
2007-12-26 18:42:17

なるほどね。
PHPと違うのがまず「%」を使用している所と、
時間が違う。
PHPだと「H:i:s」なのでPythonだと「%H:%M:%S」
になる。

まだまだ試すことがたくさんありますね。

Python鍋(忘年会?)に行ってきました

行って参りました。

場所は渋谷ってことで、
1時間半前には渋谷に到着して買い物をしてました。
久しぶりに行ったなぁ〜。
最近はwebで買えちゃうから、
レコードを掘ったりしてなかった。

そんなこんなで日本人のアーティストを
掘ってたらすげぇ〜うれしいものを発見!

SugarSoulのlimited editionってやつ。
2枚組のEPなんですが、
「今すぐ欲しい」の 「- ButterSmoother -」ってバージョン違いや
いとしさの中でもあったし、「Sause」や「悲しみの花に」も入ってた。
なんとそれで900円。

安いなぁ〜。

速攻でGetですね。

そんなこんなでいくつかレコードショップを回ったり、
お香を購入したりしてから、
Python鍋に行きました。

全部で10人ほどだったのですが、
以前同じ会社に勤めていたt-matsuda氏とminaco氏もPython関連に初参加していただきました。

いつも通りみなさんとても親切で、
話を聞いているだけで刺激を与えてくれる。
そんな環境が大好きです。

そういえばVoluntasさんの記事にある「となりのおねーさん」と会えたのもすげぇ〜うれしかったです。
ピンクのターミナルの話なども聞けました。

今年もあと少しですが、
まだまだPythonをどんどん書いていきたい。
でも今年はもうほぼ毎日のように予定が埋まっている。
家族サービスも大切。
子供かわいい。

それから・・・

時間がねぇ〜。。。

まぁ〜来年も自分のペースでやっていこう。
あせるといい事無いし。