読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

2chのAPIをとりあえず使ってみる

動機

なんか「2chの非公式API作ったよー」って記事見つけたんで何となく作ってみた。といってもほんとにデータ取ってくるだけ。

サンプル

import urllib
import urllib2

BASE_URL = 'http://www.2chsearch.net/api/'

def thread_search(_query,_page = '',_mode = '',_board = '',_callback = '',_return = '',_return2 = ''):
    parse_url = BASE_URL + 'list?'

    query = {'q':query}
    if _page != '':
        query['p'] = _page
    if _mode != '':
        query['mode'] = _mode
    if _board != '':
        query['b'] = _board
    if _callback != '':
        query['callback'] = _callback
    if _return != '':
        query['return'] = _return
    if _return2 != '':
        query['return2'] = _return2

    query = urllib.urlencode(query)
    r = urllib2.urlopen(parse_url + query)
    data = r.read()
    return data

def get_thread(_board,_dat,_mode = '',_callback = ''):
    parse_url = BASE_URL + 'thread?'

    query = {'b':board,'dat':dat}
    if _mode != '':
        query['mode'] = _mode
    if _callback != '':
        query['callback'] = _callback

    query = urllib.urlencode(query)
    r = urllib2.urlopen(parse_url + query)
    data = r.read()
    return data

def main():
    thread_search(_query = '2ch',_mode = 'html')
    get_thread(_board = 'newsplus',_dat = 1219332979,_mode = 'html')

if __name__ == '__main__':
    main()

これから

とりあえずクエリのセットをする部分が汚い。これもっと綺麗にできないかな。これからこのAPIどれくらい拡張されるのかな?楽しみ。わくわく。