PythonとXPathを使用してHTMLテーブルからデータを抽出する方法について説明します。この記事では、Pythonのライブラリであるlxmlとrequestsを使用します。
まず、必要なライブラリをインポートします。
import lxml.html as LH
import requests
次に、解析したいWebページのURLを指定して、そのページのHTMLを取得します。
url = 'http://www.example.com'
r = requests.get(url)
root = LH.fromstring(r.content)
そして、XPathを使用してHTMLテーブルからデータを抽出します。以下のコードは、テーブルのヘッダー(列名)とデータ(行)を抽出する一般的なパターンを示しています。
header = [th.text_content() for th in root.xpath('//table[@id="table_id"]//th')]
data = [[td.text_content() for td in tr.xpath('td')] for tr in root.xpath('//table[@id="table_id"]//tr')]
このコードでは、root.xpath('//table[@id="table_id"]//th')
を使用してテーブルのヘッダーを見つけ、root.xpath('//table[@id="table_id"]//tr')
を使用して行を返します。各行に対して、tr.xpath('td')
はテーブルの「セル」を表す要素を返します。
以上がPythonとXPathを使用したHTMLテーブルの解析の基本的な手順です。この方法を用いることで、様々なWebページからテーブルデータを効率的に抽出することが可能となります。