from bs4 import BeautifulSoup
<中略>
# webページのソースコードを取得
html = driver.page_source.encode('utf-8')
# 基本的にはlxmlを使っています
try:
soup = BeautifulSoup(html, "lxml")
# うまくいかない場合はデフォルトのhtml.parserを使ってみる
except:
soup = BeautifulSoup(html, "html.parser")
# 要素を抽出(例)
elements = soup.find_all("td",{"class":"txt_l"})
href_l = [str(e) for e in elements if 'href="/race' in str(e)]
import mysql.connector,glob
import pandas as pd
<接続設定は省略>
# 対象ファイルパスのリストを作成
file_l = [path for path in glob.glob('/horse_racing/race_name/*/*.csv')]
# ファイルパスから拡張子なしのファイル名を抽出
table_l = [path[-17:-4] for path in file_l]
# mysqlに接続
con = mysql.connector.connect(**config)
# データベースhorse_race_nameとhorse_race_winnerを結合してCSV出力する
for table in table_l:
year = table[-6:-2]
sql = f'SELECT * FROM horse_race_name.{table} INNER JOIN \
horse_race_winner.{year}_1着馬リスト ON horse_race_name.{table}.raceID \
= horse_race_winner.{year}_1着馬リスト.raceID'
data = pd.read_sql_query( sql = sql , con = con )
# 結合ファイル名の作成
filename = f'{table}.csv'
with open(filename, 'w', newline='',encoding = 'shift_jis') as f:
data.to_csv(f,index=False)
con.close()