python2.7でbeautifulsoupを用いて、netkeiba.comから競馬情報(騎手の成績)をスクレイピングしています。
定法に基づきまして、『検証』からページのツリー構造を把握して、プログラムを作成しました。
馬名部分の構造が<td class="txt_l">
<a href="/horse/2011105901">テンテマリ</a></td> #テンテマリは馬名
となっておりましたので、"txt_l"を拾い出せるようにスクリプトを作りました。
しかしながら、
馬名以外の"txt_l"は全部スクレイピング出来るのですが、馬名部分だけがNoneと返ってまいります。
エラーメッセージではありませんが、何が原因でNoneとなるのかが、どうしても分かりません。
ちなみに、馬名以外で、ほぼ同様の構造を持つ、『レース名』、構造は
###該当のソースコード
-- coding:utf-8 --
import urllib2
import codecs
from bs4 import BeautifulSoup
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.string
###試したこと
馬名以外の('td',{'class':'txt_l'})に準ずる『レース名』は、うまく拾うことが出来ました。
#lrg1 = tr.findAll('td',{'class':'txt_l'}) で馬名を得ることが出来ない理由、併せて馬名を拾えるスクリプトを御教示くださいますよう、よろしくお願いいたします!
###補足情報(言語/FW/ツール等のバージョンなど)
python2.7
Beautifulsoup
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。