スクレイピングで馬の情報を取りたいね

Python3を用いてnetkeibaの競走馬情報から血統データを取りたいと思います.

netkeibaにおけるスクレイピングには以下のような公式からの回答があるので注意しましょう!
https://regist.netkeiba.com/?pid=faq_detail&id=1589

イクイノックスの競走馬データの中の血統情報をスクレイピングしてみたいと思いますhttps://db.netkeiba.com/horse/2019105219

from bs4 import BeautifulSoup
import requests
import csv

# Webページを読み込む
url = 'https://db.netkeiba.com/horse/2019105219'
response = requests.get(url)
response.encoding = response.apparent_encoding

# HTMLを解析する
soup = BeautifulSoup(response.text, 'html.parser')

# 馬名を取得する
title = soup.find('div', class_='db_head_name fc')
house_name = title.find('h1')

# 血統表を取得する
data = soup.find('dd', class_='DB_ProfHead_dd_01')

# 血統表内のテキストを抽出する
blood_data = []
for element in data.find_all("a"):
    blood_data.append(element.text)

# CSVファイルに書き込む
with open('horse_blood_data.csv', 'a') as f:
    #[馬名, 父馬, 父父馬, 父母馬, 母馬, 母父馬, 母母馬,]
    writer = csv.writer(f)
    writer.writerow([house_name.text] + blood_data)

出力結果

イクイノックス,キタサンブラック,ブラックタイド,シュガーハート,シャトーブランシュ,キングヘイロー,ブランシェリー

コメントを残す