PythonとXPathを使用してWebスクレイピングを行う方法について解説します。XPathはXML Path Languageの略で、XMLやHTML形式の文書から特定の部分を指定するときに使う構文です。
XPathの基本
XPathは、HTML/XMLの要素や属性値を簡単な構文で表現する言語です。たとえば、次のようなHTMLドキュメント内のaタグをXPathで表現してみます。
<!DOCTYPE html>
<html>
<head>
<title>XPathの使ったスクレイピングを学ぼう</title>
</head>
<body>
<h1 class="title">Welcome to my Website!! <a href="https://junpage.com/">プログラミングLab</a> </h1>
<p class="explanation">Python seleniumライブラリを使ったスクレイピングをマスターしよう</p>
<h2 class="note">このHTMLドキュメントは取得結果の確認に使用します <a class="blog-link" href="https://junpage.com/">トップページへ</a> </h2>
</body>
<footer>
<p>サンプルHTML</p>
</footer>
</html>
このHTMLドキュメントから「トップページへ」のリンクを指定するXPathは次のようになります。
xpath = "//h2/a"
このXPathは、HTMLの階層構造(ツリー構造)を順にたどってタグ要素を指定します。また、XPathは//
(ダブルスラッシュ)を使うことで省略して記述することもできます。
PythonとSeleniumを使用した要素の取得
PythonのSeleniumライブラリを使用して、XPathを指定してWeb要素を取得する方法を見てみましょう。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.example.com')
# XPathで要素を取得
element = driver.find_element(By.XPATH, '//*[@id="example"]')
このコードは、指定したURLのWebページを開き、XPathを使用して要素を取得します。
まとめ
XPathは、HTML/XMLの要素を指定する強力なツールです。PythonとSeleniumを使用して、XPathを活用することで、Webスクレイピングをより効率的に行うことができます。