皐月賞の調教後馬体重を抽出
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に吐き出させるコード。
無理やりなので応用性が低いのと
この後、出走前馬体重と比較させる予定なので、
道のり半ばですが
モチベ維持のため上げました。
使えばエクセルへのコピペが、多少楽になるかと。