import datetime
import requests
from bs4 import BeautifulSoup
url = 'http://www.jfl.or.jp/jfl-pc/view/s.php?a=1277'
r = requests.get(url)
if r.status_code == requests.codes.ok:
soup = BeautifulSoup(r.content, 'html.parser')
update_str = soup.select_one(
'#page_detail > div > div > div > p').get_text(strip=True).rstrip('更新')
update = datetime.datetime.strptime(update_str, '%Y/%m/%d')
result = [[
x.get_text(strip=True) for x in y.select('td')
] for y in soup.select('#page_detail > div > div > div > table > tr')[2:]]
for i in result:
if '今治' in i[1]:
print('{}現在のFC今治の順位は{}位です'.format(
update.strftime('%m/%d'), i[0]))
break
Pandas
!pip install lxml
import pandas as pd
url = 'http://www.jfl.or.jp/jfl-pc/view/s.php?a=1277'
dfs = pd.read_html(url, skiprows=2)
df = dfs[0]
df.columns = ['順位', 'チーム名', '勝点', '試合数', '勝利', '勝利H', '勝利A', '引分', '引分H', '引分A', '敗戦', '敗戦H', '敗戦A', '得失点差', '得点', '失点']
df.set_index('順位', inplace=True)
df
df.sort_values(by=["得点", "得失点差"], ascending=False).reset_index()
df.sort_values(by=["勝利H", "勝利A"], ascending=False).reset_index()
df.sort_values(by=["敗戦H", "敗戦A"], ascending=False).reset_index()
df['回数H'] = df['勝利H'] + df['引分H'] + df['敗戦H']
df['回数A'] = df['試合数'] - df['回数H']
df['勝率H'] = df['勝利H'] / df['回数H']
df['引分率H'] = df['引分H'] / df['回数H']
df['敗率H'] = df['敗戦H'] / df['回数H']
df['勝率A'] = df['勝利A'] / df['回数A']
df['引分率A'] = df['引分A'] / df['回数A']
df['敗率A'] = df['敗戦A'] / df['回数A']
df.style.format({'勝率H':"{:.2%}", '敗率H':"{:.2%}",'引分率H':"{:.2%}",'勝率A':"{:.2%}",'敗率A':"{:.2%}",'引分率A':"{:.2%}"})