今のところM1 Macにおいてpipコマンドだけでライブラリを揃える場合、lxmlをインストールできないためpandas.read_htmlを使うケースでは代替スクリプトを考える必要があります。
私のスクリプトは以下のように書き換えました。tableを一旦CSVファイルにしてからデータフレームとして読み込んでいます。まどろっこしいですが仕方ないです。
# 代替スクリプト
# 文字コードをUTF-8に変換してソース取り込み
html = driver.page_source.encode('utf-8')
# BeautifulSoupでデータ抽出
soup = BeautifulSoup(html, "html.parser")
# soupから3番目のtableを抽出
table = soup.find_all("table",attrs={"cellspacing" : "1"})[2]
rows = table.findAll("tr")
filename = "table.csv"
with open(filename, "w", encoding='utf-8') as file:
writer = csv.writer(file)
for row in rows:
csvRow = []
for cell in row.findAll(['td', 'th']):
text = cell.get_text()
text2 = text.replace('"','').replace("\n","").replace(" ","").replace(" ","")
csvRow.append(text2)
writer.writerow(csvRow)
# CSVファイルをデータフレームに変換
df = pd.read_csv(filename)
# 旧スクリプト
# 文字コードをUTF-8に変換してソース取り込み
html = driver.page_source.encode('utf-8')
# BeautifulSoupでデータ抽出
soup = BeautifulSoup(html, "html.parser")
# soupから3番目のtableを抽出
table_data = soup.find_all("table",attrs={"cellspacing" : "1"})
df_stock_specific = pd.read_html(str(table_data), header=0)[2]
labels_specific = ['A','B','C','D','E']
df_stock_specific2 = df_stock_specific.reindex(labels_specific, axis=1)