皐月賞の調教後馬体重を抽出

import requests
from bs4 import BeautifulSoup

url = 'https://jra.jp/news/202304/041305.html'
# requestsでHTMLを取得
response = requests.get(url)
# レスポンスのエンコーディングを設定
response.encoding = 'Shift_JIS'

# BeautifulSoupでHTMLを解析
soup = BeautifulSoup(response.content, 'html.parser', from_encoding=response.encoding)

# <table>タグを抽出
table = soup.find('table', {'class': 'basic narrow-xy news mt10'})

# <td>と<strong>タグの内容をすべて取得し、リストに格納
td_list = table.find_all('td',class_='left')
strong_list= table.find_all('strong')

# 馬の名前を格納するリスト
horse_list = []
# 騎手の名前を格納するリスト
jockey_list = []

# td_listから馬の名前を取得してhorse_listに格納
for i in range(0, len(td_list), 2):
    horse_list.append(td_list[i].text.strip())
# td_listから騎手の名前を取得してjockey_listに格納
for i in range(1, len(td_list), 2):
    jockey_list.append(td_list[i].text.strip())

    # 確認のために出力してみる
    #print(horse_list)
    #print(jockey_list)

#場体重と馬名を表示
for i in range(len(horse_list)):
    print(f"{horse_list[i]} {strong_list[i].text}")

#場体重と馬名をtextへ
with open('output.txt','w') as f:
    for i in range(len(horse_list)):
        f.write(f"{horse_list[i]} {strong_list[i].text}\n")


#場体重
#weight_index=strong_list.index('馬体重')
#weight = strong_list[weight_index + 1]

# 馬名を取得
#horse_name_index = td_list.index('馬名')
#horse_name = td_list[horse_name_index + 1]

#print('馬名:', horse_name)
#print('馬体重:', weight)



#print(strong_tags[0])
#チェック用

#text_list=[x.string for x in tags]

#print(res.text)
#requestsをターミナルから読んで保存させるためには以下
#py -m pip install requests

素人が作った、馬体重のURL入れて
pythonでtextに吐き出させるコード。
無理やりなので応用性が低いのと
この後、出走前馬体重と比較させる予定なので、
道のり半ばですが
モチベ維持のため上げました。

使えばエクセルへのコピペが、多少楽になるかと。


いいなと思ったら応援しよう!