PythonでスクレイピングしてテーブルをCSVに保存

Beautifulsoupの場合

import csv

from bs4 import BeautifulSoup
import requests

url = 'http://www.example.com/'

r = requests.get(url)

if r.status_code == requests.codes.ok:

    soup = BeautifulSoup(r.content, 'html.parser')

    result = [[[td.get_text(strip=True) for td in trs.select('th, td')]
               for trs in table.select('tr')]
              for table in soup.select('table')]

    # 取得テーブル数確認
    print(len(result))

    # 取得テーブルデータ確認
    print(result)

    with open('result.csv', 'w') as fw:
        writer = csv.writer(fw, dialect='excel', lineterminator='\n')

        # 0番目のテーブルを保存(リストの番号を変更する)
        writer.writerows(result[0])

Pandasの場合

import pandas as pd

url = 'http://www.example.com/'
dfs = pd.read_html(url, header=0, index_col=0)

# 取得テーブル数確認
print(len(dfs))

# 取得テーブルデータ確認
print(dfs)

# 結合
# df = pd.concat(dfs)

# 0番目のテーブルを保存(リストの番号を変更する)
dfs[0].to_csv('result.csv')