FC今治の順位をスクレイピング

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')

    # print(update)

    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%}"})
#df.sort_values(by=["勝率H", '勝利H'], ascending=False).reset_index()