締切済み

csvファイルに保存が出来ずに困っています!!

  • すぐに回答を!
  • 質問No.9210592
  • 閲覧数222
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 75% (3/4)

python初心者でございます。

python2.7,beautifulsoupを用いて競馬情報をスクレイピングしましたが、

作成されたhorse.csvファイルにデータ保存が出来ず、困っております。

csvファイルに保存出来るスクリプトを、御教示よろしくお願いいたします。


小生が作成したソースコード
-*- coding:utf-8 -*-

import urllib2
import codecs

from bs4 import BeautifulSoup

f = codecs.open('horse.csv', 'w', 'utf-8')
f.write('tr1')

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

for i in xrange( 1, 2 ):
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:

lrg1 = tr.findAll('td',{'class':'txt_l'})

for tr1 in lrg1:
print tr1.a.string

f.close()


試したこと
上記のプログラムを動かすと作成されたCSVファイルには何も記録、保存されておりませんでした。

御教示よろしくお願いいたします!!!

回答 (全2件)

  • 回答No.2

ベストアンサー率 0% (0/0)

普段Python3を使っているので動く試していませんが

import urllib2
from bs4 import BeautifulSoup
import csv

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

for n in range(1, 2):
url = tpl_url.format(n)

html = urllib2.urlopen(url)
soup = BeautifulSoup(html, 'lxml')

tr = soup.select('#contents_liquid > table > tbody > tr')

data = [[j.get_text().strip() for j in i.select('td.txt_l')] for i in tr]

with open('horse.csv', 'wt') as fw:
writer = csv.writer(fw, lineterminator='\n')
writer.writerows(data)

findやfindallよりもselectのほうが簡単でシンプルに書くことができます。
お礼コメント
akakage13

お礼率 75% (3/4)

python3の勉強も出来ました。
本当にありがとうございました!!!
投稿日時 - 2016-08-06 17:28:29
  • 回答No.1
見た感じcsv出力だけではなくプログラムそのものが動いていないのではないでしょうか。
エラーが出ていなければ「tr1」という文字だけ記載されているcsvファイルができると思いますが。

とりあえず
f.write('tr1')
は、そこではなくて
for tr1 in lrg1:
の下あたりでしょうね。tr1の何を出力したいのか分かりませんが、
f.write(tr1.a.string)
とでもすれば、他に問題がなければ標準出力に表示されているものと同じものがcsvファイルにはき出されるはずです。
お礼コメント
akakage13

お礼率 75% (3/4)

ありがとうございました!、問題点が分かりました!!!
投稿日時 - 2016-08-05 20:19:07
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ