Tag/Python

Django1.0リリース

出たなー

色々やらないとね

http://www.djangoproject.com/

Posted at: 
2008/09/05 01:34:34
0 Comments
0 TrackBacks
Tags: 
Django
Python
Trackback: 
http://kishi-r.com/2008/09/05/django_release/trackback/

GoogleCodeからjqueryに関連するものを引っ張ってこようっと(その1)

とりあえずGoogleCodeにアクセスして、最初のページのURLとタイトルを持ってくる。

# vim: encoding=utf-8 :

import urllib2
from BeautifulSoup import BeautifulSoup

GOOGLE_CODE_URL  = 'http://code.google.com/hosting/search'

def get_google_code_list():
    search = '?q=jquery&projectsearch=Search+Projects'
    url = GOOGLE_CODE_URL + search
    opener = urllib2.build_opener()
    r = opener.open(url)
    soup = BeautifulSoup(r)
    list = {}
    for div in soup('div', {'class':'name'}):
        for a in div('a'):
            list[a.string] = a.get('href')
    return list

1.まずはGoogleCodeのサイトにアクセスしてjqueryで検索を掛ける。

2.それをBeautifulSoupでパースして「URL」と「タイトル」のセットをリストへぶち込み

3.それをpirntして確認

{
    u'jquery-ajaxq\n - AJAX request queueing for jQuery': u'/p/jquery-ajaxq/',
    u'jquery-lightbox\n - Lightbox style effects in a jQuery plugin': u'/p/jquery-lightbox/',
    u'jquery-em\n - Monitor Font Size Changes with jQuery': u'/p/jquery-em/',
    u'jquery-flickr\n - jQuery Flickr plug-in is a JavaScript interface for Flickr Services AP...':
    u'/p/jquery-flickr/', u'jquery-color-utils\n - jquery-color-utils': u'/p/jquery-color-utils/',
    u'jquery-domec\n - jQuery DOM elements on-a-fly': u'/p/jquery-domec/',
    u'jquery-session\n - Simulate session vars in jQuery': u'/p/jquery-session/',
    u'jquery-decorated\n - jQuery plugin to transform simple HTML components into more complex on...': u'/p/jquery-decorated/',
    u'jquery-aop\n - Aspect Oriented Extensions for jQuery': u'/p/jquery-aop/',
    u'jquery-dropj\n - A jQuery plugin to add drop caps (large floating initial capital lette...': u'/p/jquery-dropj/'
}

とりあえず出来たので、次はページがあるまで取得するのをやるが・・・明日にするかなw

・全ページのデータを取得してDBにて管理

・以前のデータと比較して更新されていればアップデート、そうでなければ何もしない

・もしURLもしくはプロジェクトが存在しなければ、削除フラグを立てて、更新しなくする

というのをCronに登録しておけば、自動的にどれが更新されているかとかが解るリストが作れるな。

Posted at: 
2008/08/07 23:57:27
0 Comments
1 TrackBack
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/08/07/google_jquery_1/trackback/

[pyspa]温泉行ってきました

移行した時にエントリーを追記するの忘れてたw なのでもう一度書いておこうっと。

djangobook
Getしました。
一人分足りないですがorz
今回は参加されないとの事でした。
来ている方からは頂きました。

うれしいっすなぁ〜。
サインを書いて下さったみなさん、ありがとうございました!
pyspa01
温泉ではブログをPicoLogへ移行して、
まだドメインの移管など残タスクがあるので、
これ以降はあまり書きたくないなw
幹事のVoluntasさんとkuma8さんお疲れ様でした。
そしてありがとうございました。

Posted at: 
2008/07/08 17:36:28
0 Comments
0 TrackBacks
Tags: 
Django
pyspa
Python
Trackback: 
http://kishi-r.com/2008/07/08/pyspa3/trackback/

Python「lxml」でAmazonAPIを使ってみた

やってみた。
おもしろかった。

だけどもっとレスポンスが速い方法があるはず。
誰か教えてw

下記にまとめてみた。

http://pod-head.net/wiki/amazonapi_python

早くブログを移行したいけど、
時間が余りないせいか、自分自身にゆとりがないので、
出来てないorz

Posted at: 
2008/04/01 23:17:43
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/04/01/pythonlxmlamazonapi/trackback/

昨日はスノボー、今日はPythonNerima

昨日は、
前の会社の人たちと湯沢の神立へスノボーしに行ってきた。

楽しかった!
来年は泊まりだな。って言ってた。
なんならマイクロバス借りてみんなで、
行けたらおもしろいかも。

いつもはクアハウスで温泉に入って休憩所でのんびりしてから、
寝るのだが・・・

やってねー!
なんか暗いからおかしいと思ったんだよねw

しょうがなく近くの健康ランドへGO!

けっこうぼろいけど、
ちゃんと寝られたからよかった。
(すげ〜イビキかいているやつがいたけど・・・。)

ゲレンデのコンディションはそれなりに良かった。
(春スキーだけどと言うことで。)
天候は微妙だったが、
かなりの本数を滑れたのが、
なによりですね。

筋肉痛も軽くあるぐらいで、
思ったよりも全然動ける。

良かったよぉ〜。

今日はPython練馬って事で、
練馬区練馬で飲んできた。

集まったのは、

@MiCHiLU
@aohta
@kishir(自分)

の合計3人。
人数は少ないけど、
多いと誰と喋ろうかすごい迷って、
あまり話せないので、
良かった。
軽い感じで日常会話っぽいのも
なんか新鮮だったな〜。
技術のことよりも、
雑談って感じかなw

後、
みんな練馬に来れば良いよ。
良いところだよ。
なんなら大泉学園にも来れば、
最高にうまい焼鳥屋があるんだけどな。
(近いと自分が帰るのが楽だからってのが重要w)

さて、
今日はまだ作業が残っているのでやらないと。
本当はドラゴンボールGTを見たいけど、
我慢、我慢。

Posted at: 
2008/03/31 00:00:43
0 Comments
0 TrackBacks
Tags: 
Python
sk8
Trackback: 
http://kishi-r.com/2008/03/31/pythonnerima/trackback/

PyhonでYahooAPI関連検索を試してみた

Yahoo!デベロッパーネットワーク

というページがあり、
ここにはウェブ検索や画像検索などのAPIの
詳細が書かれている。

関連検索ワードWebサービスは下記から。

http://developer.yahoo.co.jp/search/webunit/V1/webunitSearch.html

使用するのには、
アプリケーションID
が必要みたいなので登録した。

後気をつけなければいけないのが、

関連検索ワードWebサービスは、
24時間中1IPアドレスにつき50000件のリクエストが上限となっています。

なるほど。
お金を払って商用とかに使えるのかな?
今度聞いてみたいな。

今回は以前使用した「BeautifulSoup」を使って、
早速やってみる。
(nobuさんにlxmlで良くない?って言われてたな。。。今度はそっちでやってみよう。)
>>> import urllib2
>>> from urllib import quote
>>> from BeautifulSoup import BeautifulSoup
>>> opener = urllib2.build_opener()
>>> yahoo_url = u'http://api.search.yahoo.co.jp/AssistSearchService/V1/webunitSearch?'
>>> yahoo_id = u'appid=登録したアプリケーションID'
>>> search_tag = u'python'<br />
>>> yahoo_query = 'u&amp;amp;amp;amp;amp;amp;query=' + quote(search_tag.encode('utf-8'))
>>> yahoo_html  = opener.open(yahoo_url + yahoo_id + yahoo_query).read()
>>> yahoo_soup  = BeautifulSoup(yahoo_html)
>>> print yahoo_soup

実際に取得した値を表示させるとこんな感じ。
< ?xml version='1.0' encoding='utf-8'?>
monty python
colt python
python インストール
python 制限
python cgi
python 入門
python ダウンロード
<!-- pls139.search.tnz.yahoo.co.jp uncompressed/chunked Thu Feb 14 23:52:57 JST 2008 --><br />
<!-- ws0.search.bbt.yahoo.co.jp uncompressed/chunked Thu Feb 14 23:52:57 JST 2008 --><br />
上記から
<result>の部分のみを取得する。

>>> yahoo_obj = []
>>> for yobj in yahoo_soup.findAll('result'):
...  yahoo_obj.append(''.join([str(t) for t in yobj.contents[:]]))


こんな感じかな。
とりあえず取れた。

Posted at: 
2008/02/14 23:13:16
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/02/14/pyhonyhooapi/trackback/

Pythonではてなダイアリーキーワード自動リンクAPIを試してみた

はてなダイアリーキーワード自動リンクAPI
今作成中のブログに使えないか考えてたので、
試してみた。

サンプルは、
Perlしかなかったので、
Pythonで書いてみた。

#まずxmlrpclibをインポートします。
>>> import xmlrpclib
#次にurlを指定します。
>>> server = xmlrpclib.ServerProxy('http://d.hatena.ne.jp/xmlrpc')
#次は実際リンクを貼りたい内容と各属性を指定しています。
>>> result = server.hatena.setKeywordLink({'body': 'はてなでスケボーやレコードなどを検査するとどんなレスポンスが返ってくるのだろう?', 'score': '20', 'a_target': '_blank', 'a_class': 'keyword'})
#最後にレスポンスを表示してみる
>>> print result<
<a>はてな</a><a>スケボー</a><a>レコード</a>などを検査するとどんなレスポンスが返ってくるのだろう?
こんな感じで返ってきたっす。

指定するパラメーターなどははてなに記載されていました。
uri : http://d.hatena.ne.jp/xmlrpc
encoding : utf8
methodName : hatena.setKeywordLink
parameters : 以下を参照
body(string): キーワードを抽出するテキストを指定します。
score(int): 0〜50。キーワードスコアのしきい値を指定します。指定された値よりもスコアが大きいキーワードのみが抽出されます。省略可。
cname(array): キーワードのカテゴリーを指定します。指定があった場合、「一般」と指定されたカテゴリーのキーワードが抽出されます。指定が無かった場合は、全カテゴリーとなります。book,music,movie,web,elec,animal,anime,food,sports,game,comic,hatena,clubが指定可能です。省略可。
a_target(string): アンカー(a)タグのtarget属性値を指定します。省略可。例:_blank
a_class(string): アンカー(a)タグのclass属性値を指定します。省略可。例:keyword

今回指定したのは、

・body : 'はてなでスケボーやレコードなどを検査するとどんなレスポンスが返ってくるのだろう?
・score : 20
・a_target : _blank
・a_class : keyword

です。
これをブログに組み込んだら面白いかな?
と考え中です。

Posted at: 
2008/02/09 00:15:39
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/02/09/pythonapi/trackback/

Social Graph API をPythonでやってみた

気になったのでやってみた。
自分のtwitterのページでFollowされているのを取得する。

まずはベースとなるURLが

http://socialgraph.apis.google.com/lookup

こちらは、
GoogleCodeに記載されている。
http://code.google.com/apis/socialgraph/

で引数を決める。
今回使用したのは、

・pretty(インデント・改行される。)
・callback(コールバック関数を指定)
・edo(FollowしているURLを表示させる)

In [1]: base_url = 'http://socialgraph.apis.google.com/lookup?q=http://twitter.com/kishir&pretty=1&callback=foo&
edo=1'

In [2]: html = opener.open(base_url).read()

In [3]: print html
foo({
 "canonical_mapping": {
  "http://twitter.com/kishir": "http://twitter.com/kishir"
 },
 "nodes": {
  "http://twitter.com/kishir": {
   "attributes": {
    "url": "http://twitter.com/kishir",
    "profile": "http://twitter.com/kishir",
    "rss": "http://twitter.com/statuses/user_timeline/kishir.rss",
    "atom": "http://twitter.com/statuses/user_timeline/kishir.atom"
   },
   "nodes_referenced": {
    "http://kishi-r.com/": {
     "types": [
      "me"
     ]
   },
    "http://twitter.com/kano_e": {
     "types": [
      "contact"
     ]
    },
    "http://twitter.com/soundkitchen": {
     "types": [
      "contact"
     ]
    },
    "http://twitter.com/tasukuchan": {
     "types": [
      "contact"
     ]
    },
    "http://twitter.com/yoshuki": {
     "types": [
      "contact"
     ]
    }
   }
  }
 }
});

なんでだろう?
Followされているユーザーが全て表示されない。
引数「q」に他のURLを加えると増えるのだが、
それも良くわからないなぁ~。

もうちょっと試してみるかな。

Posted at: 
2008/02/04 18:24:01
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/02/04/social_graph_api_python/trackback/

PythonでBeautiful Soupを試してみる。

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

まず必要なのが、

BeautifulSoup

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

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

やってみます。

>>> import urllib2
>>> opener = urllib2.build_opener()
>>> html = opener.open('http://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="http://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ニュースで指定した単語を検索して、ヒット数を返すサンプルなどがありました。
とりあえず試してみようっと。

Posted at: 
2008/02/04 11:51:27
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/02/04/pythonbeautiful_soup/trackback/

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の関連検索を調べてみる。

これから渋谷です。

http://tinyurl.com/yvvmrd

にしてみようかなぁ~。

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)



なんてものがあったので、

色々と出来そう。

ちょこちょこ試してみようっと♪


Posted at: 
2008/01/22 16:39:24
0 Comments
0 TrackBacks
Tags: 
Python
Trackback: 
http://kishi-r.com/2008/01/22/pythontwitter/trackback/

人気ブログランキング - kishi-r.com track feed
あわせて読みたい