XPathはXML Path Languageの略で、XMLやHTML形式の文書から特定の部分を指定するときに使う構文です。Pythonでは、BeautifulSoupやlxmlなどのライブラリを通じてXPathクエリをサポートしています。
XPathの基本
XPathは、HTML/XMLの要素や属性値を簡単な構文で表現する言語です。たとえば、以下のようなHTMLドキュメント内のaタグをXPathで表現してみます。
<!DOCTYPE html>
<html>
<head>
<title>XPathの使ったスクレイピングを学ぼう</title>
</head>
<body>
<h1 class="title">Welcome to my Website!!</h1>
</body>
</html>
このHTMLドキュメントで、<h1>
タグをXPathで指定すると、//h1
となります。この//
は、ノードの子孫すべてを意味します。
PythonでのXPathの使用
PythonでXPathを使用するには、xml.etree.ElementTree
クラスを使用します。以下に、XMLファイルを解析する例を示します。
import xml.etree.ElementTree as ET
root = ET.parse(filename)
result = ''
for elem in root.findall('.//child/grandchild'):
if elem.attrib.get('name') == 'foo':
result = elem.text
break
このコードは、指定したパスのXMLファイルを解析し、child/grandchild
要素を探します。その要素のname
属性がfoo
である場合、その要素のテキストを結果として返します。
まとめ
XPathは、Webスクレイピングにおいて非常に強力なツールです。Pythonと組み合わせることで、HTMLやXMLドキュメントから必要な情報を効率的に抽出することが可能になります。これらの知識を活用して、より高度なWebスクレイピングを行いましょう。