2008-01-01から1年間の記事一覧

BeautifulSoupを使ってGoogleの表示順位を調べる

BeautifulSoupはHTML解析用のライブラリです。htmllib.HTMLParserやHTMLPaprser.HTMLParserと違い、正しくないHTMLも扱えるようです。これを使ってGoogleの表示順位を調べるスクリプトを書いてみました。 #!python # vim:fileencoding=utf-8 import re impor…

HTMLParser.HTMLParserでリンクを抽出

#!python # vim:fileencoding=utf-8 from HTMLParser import HTMLParser import urllib2 from urlparse import urlparse class ExtractTextLinkParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.links = [] self.url = "" self.text…

htmllib.HTMLParserでリンクを抽出

#!python # vim:fileencoding=utf-8 from htmllib import HTMLParser from formatter import NullFormatter import urllib2 from urlparse import urlparse class ExtractTextLinkParser(HTMLParser): def __init__(self): HTMLParser.__init__(self, NullFo…

重複する要素を取り除く

>>> xs = [5, 8, 5, 1, 1, 4, 2, 4, 3, 2] >>> set(xs) set([1, 2, 3, 4, 5, 8]) >>> sorted(set(xs), key=xs.index) # 順序を維持 [5, 8, 1, 4, 2, 3]

整数を漢数字に変換

#!python # vim:fileencoding=utf-8 def num2kanji(num): KNUM = [u"", u"一", u"二", u"三", u"四", u"五", u"六", u"七", u"八", u"九"] DIGIT1 = (u"", u"十", u"百", u"千") DIGIT2 = (u"", u"万", u"億", u"兆", u"京") try: num = int(num) except Val…

文字列を逆順にする

>>> str = "abcdefg" >>> str[::-1] 'gfedcba' >>> >>> str[0:5:2] # 0番目から5番目までを2つおきに取り出す 'ace' >>> str[-1:-5:-1] # 後ろの4つの要素を逆順に取り出す 'gfed'

wgetでYouTube等から動画を落とす

今度は正規表現を使わずに書いてみました。 #!python #encoding=utf-8 import urllib import urllib2 import re import os import sys import time save_dir = r"c:\My Documents" interval = 3 def get_video_detail(url): for host, video in VIDEOS.items…

wgetでYouTube等から動画を落とす

Rubyに戻ってみました。selfを書かなくて済むのはいいんですが、Pythonに慣れてきたせいか、endを書くのが少し面倒になってます。後、インスタンスごとにメソッドの振る舞いを変えられるのはいいです。新しくクラスを作らなくて済みますし。 #!ruby require …

スーパークラスのメソッドを呼び出す

class SuperClass: def __init__(self, x): self.x = x def show(self): print "x:%s" % self.x class SubClass(SuperClass): def __init__(self): SuperClass.__init__(self, 3) c = SubClass() c.show() サブクラスのメソッド内で、同名のスーパークラスの…

wgetでYouTubeから動画を落とす

wgetでYouTube、Veoh、Dailymotion、AmebaVision、YourfilehostからFLVファイルを落とします。ただし、ログインしないと見れない動画は落とせません。 #!python #encoding=utf-8 import os import sys import re import urllib import urllib2 import time s…

コマンドラインモードでの貼り付け

vim

Ctrl-R " レジスタの値(dd/yyで削除/コピーした値)を貼り付け Ctrl-R + クリップボードの値を貼り付け

テキストの編集

vim

文字列の挿入 a カーソル位置の後に文字列を追加 A 現在行の末尾に文字列を追加 i カーソル位置の前に文字列を追加 I 現在行の最初の非空白文字の前に文字列を追加 o 現在行の下に文字列を追加 O 現在行を下に1行ずらし、空いた行に文字列を追加 文字列の削…

カーソルの移動

vim

上下左右にN桁移動 N l N桁右に移動 N h N桁左に移動 N k N桁上に移動 N j N桁下に移動 N gk 見た目の行でN桁上に移動 N gj 見た目の行でN桁下に移動 行を折り返す設定にしている場合、長い行は以下のように表示されます。 5 XXX Perhaps there should be a …

ニコニコから動画を落とすスクリプト改

ニコニコ動画ダウンローダ - odz bufferを参考にして、以前作ったニコニコから動画を落とすスクリプトを少しばかり修正しました。 デフォルトでCookieを"nico-cookie.txt"から読み込む ログインしていなければ、ログイン後、Cookieをファイルに保存 スクリプ…

クラスを定義する

>>> class Point: # クラス定義の開始 ... format = "%s [X:%s Y:%s]" # クラス変数 ... ... def __init__(self, x, y): # メソッドの定義 ... self.str = "Point" # インスタンス変数 ... self.set(x, y) ... ... def set(self, x, y): ... self.__x = int(…

ニコニコから動画を落とすスクリプト

勉強がてら、ニコニコから動画をダウンロードするスクリプトを書いてみました。一応、コメントとヘルプメッセージは英語にしてみましたが、正直、そこが一番自信がないです。というかプログラムそのものよりも、どういうメッセージを表示するかの方が悩みま…

フォーマット文字列のフィールド幅

>>> n = 1000 >>> format = "%%%dd" % len(str(n)) >>> format % 10 ' 10' この書き方だと%が多くてわかりにくいと思っていたところ、 >>> n = 1000 >>> size = len(str(n)) >>> format = "%*d" >>> format % (size, 10) # フィールド幅、値の順 ' 10' こう…

コマンドラインオプションの解析

from optparse import OptionParser, OptionValueError import os # スクリプトの使用方法を表す文字列 # デフォルト値は"Usage: %prog [options]" # "usage: "で始まらないと自動的に"usage :"が追加される # %progはスクリプト名で置換 usage = "usage: %p…

urllib2でCookieを使う

urllib2モジュールでCookieを使ったWebへのアクセスは以下のように行います。 import urllib2, cookielib cj = cookielib.CookieJar() # Cookieを格納するオブジェクト cjhdr = urllib2.HTTPCookieProcessor(cj) # Cookie管理を行うオブジェクト opener = ur…