【Python】pandasでhtmlのtableをスクレイピング
概要
以下でBeautifulSoupを使ってwebページのhtmlからtableをスクレイピングしたときに少しはまったときの対処法について書きましたが、pandasを使ったらそんなこと悩んだ時間が何だったんだろうというくらい一瞬でできてしまったのでメモします。
tableを取得するコード
BeautifulSoupを使う場合
import requests
from bs4 import BeautifulSoup
r = requests.get('http://example.com',headers = headers)
soup = BeautifulSoup(r.content, "lxml")
table = soup.findAll('table',{'class':"test_table"})[0]
rows = table.findAll('tr')
for row in rows:
print(row)
pandasを使う場合
import pandas as pd
url = 'http://example.com'
df = pd.read_html(url)
print(df[0])
pandasを使用する場合は得られるデータ形式がDataFrameですが、pythonで表を扱う場合は最初からDataFrameでとれたほうが有難いので全く問題無し。今後どんどん使っていってデメリットとかあるかは調べてみます。
以上
Pythonを一から学ぶのにおすすめの本はコチラ