前提・実現したいこと

お世話になります、python初心者ですpython2.7,beautifulsoupを用いて、競馬データをスクレイピングしておりますが、どうにも困っております。
1行だけはprintすることが出来るのですが、20行をスクレイピングするスクリプトと、併せて、CSVに出力させるスクリプトが分かりません。

発生している問題・エラーメッセージ

csvに保存が出来ないこと

20行をまとめてスクレイピングすることが出来ないこと

# -*- coding:utf-8 -*-


import urllib2
import codecs
from bs4 import BeautifulSoup

f = codecs.open('horse.csv', 'w', 'utf-8')
f.write('race_date,kaisai,weather,race_number,race_name,tousuu,frame_number,horse_number,single_win_ratio,popularity,horse_arrival,horse_name,weight,distance,baba, race_time,difference,horse_pass,pace,nobori,horse_weight,win_horse,prize_money'+ u"\n")

tpl_url='http://db.netkeiba.com/?pid=jockey_detail&id=00663&page={0}'

for i in xrange(1, 5):
    url=tpl_url.format( i )
    soup = BeautifulSoup(urllib2.urlopen(url).read(),"lxml")
    tr_arr = soup.find('div', {'id':'contents_liquid'}).findAll('tbody')  

    for tr in tr_arr:

    #日付#race_date
        lrg1= tr.findAll('td')[0].string
        #開催#kaisai
        lrg2= tr.findAll('td')[1].string
        #天気#weather
        lrg3= tr.findAll('td')[2].string
        #第○レース#race_number
        lrg4= tr.findAll('td')[3].string
        #レース名#race_name
        lrg5= tr.findAll('td')[4].string
        #映像(この部分、削除したいです)
        lrg6= tr.findAll('td')[5].string
        #頭数#tousuu
        lrg7= tr.findAll('td')[6].string
        #枠番#frame_number
        lrg8= tr.findAll('td')[7].string
        #馬番#horse_number
        lrg9= tr.findAll('td')[8].string
        #単勝#single_win_racio
        lrg10= tr.findAll('td')[9].string
        #人気#popularity
        lrg11= tr.findAll('td')[10].string
        #着順#horse_arrival
        lrg12= tr.findAll('td')[11].string
        #馬名#horse_name
        lrg13= tr.findAll('td',{'class':'txt_l'}) [1]
        #斤量#weight
        lrg14= tr.findAll('td')[13].string
        #距離#distance
        lrg15= tr.findAll('td')[14].string
        #馬場#baba
        lrg16= tr.findAll('td')[15].string
        #タイム#race_time
        lrg17= tr.findAll('td')[16].string
        #着差#difference
        lrg18= tr.findAll('td')[17].string
        #通過#horse_pass
        lrg19= tr.findAll('td')[18].string
        #ペース#pace
        lrg20= tr.findAll('td')[19].string
        #上り#nobori
        lrg21= tr.findAll('td')[20].string
        #馬体重#horse_weight
        lrg22= tr.findAll('td')[21].string
        #勝ち馬#win_horse
        lrg23= tr.findAll('td',{'class':'txt_l'}) [2]
        #賞金#prize_money
        lrg24= tr.findAll('td')[23].string

        print lrg1,lrg2,lrg3,lrg4,lrg5,lrg6,lrg7,lrg8,lrg9,lrg10,\
                  lrg11,lrg12,lrg13.a.string,lrg14,lrg15,lrg16,lrg17,\
                  lrg18,lrg19,lrg20,lrg21,lrg22,lrg23.a.string,lrg24


        f.close()

試したこと

forなどで、ループさせてみましたが、スキル不足でうまくいきませんでした。

補足情報(言語/FW/ツール等のバージョンなど)

python2.7

findAllを多用して、力ずくで作ったプログラムでございます。
先輩の皆様方、御教示よろしくお願いいたします。