###前提・実現したいこと
python初心者でございます。python2.7とbeautifulsoupで競馬情報をスクレイピングしたのですが、<span>で囲まれた部分の情報をそれぞれ分割して、csvに保存する方法が分からず苦慮しております。
###発生している問題・エラーメッセージ
<span>芝右 外2200m / 天候 : 晴 / 芝 : 良 / 発走 : 15:40</span><br /> 上記の<span>で囲まれた部分を、(例)course= 芝右 外2200m 、weather=晴、course_condition=芝良 、start_time=15:40 というように、分割させたいのです。
###該当のソースコード
# -*- coding:utf-8 -*- import urllib2 import codecs import time from bs4 import BeautifulSoup f = codecs.open('g1_race.csv', 'w', 'utf-8') f.write('race_condition'+u"\n") url='http://db.netkeiba.com/race/201508050411/' soup = BeautifulSoup(urllib2.urlopen(url).read(),"lxml") tr_arr = soup.select("table.race_table_01 > tr") for tr in tr_arr: time.sleep(1) tds=tr.findAll("td") if len( tds ) > 1: race_condition_tag = soup.find('div',{'class':'mainrace_data'}).find('span') race_condition = "".join([x for x in race_condition_tag.text if not x == u'\xa0' and not x == u'\n']) print race_condition cols = [race_condition] f.write(",".join(cols) + "\n") f.close()
###試したこと
上記のプログラムは第36回エリザベス女王杯(G1)の結果をスクレイピングしております。
今回の苦慮しております<span>芝右 外2200m / 天候 : 晴 / 芝 : 良 / 発走 : 15:40</span><br />の部分は、netkeiba.com様のソースコードの170行目でございます。ノーブレークスペース (no-break space)のある文字列の対応については、ある程度は調べたのですが、わかりませんでした。
これを分割するスクリプトを御教示いただけますと幸いです。
よろしくお願いいたします。
###補足情報(言語/FW/ツール等のバージョンなど)
python2.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 00:55