【Python】XPathを取得した結果、スクレイピングの効率がアップした

どうも、カメ助(@kamesuke_blog)です。

Pythonでスクレイピングする際に毎回HTMLの構造解析が必要なんですが、このHTMLの構造解析が非常に面倒で、

カメ助

何とかならないかな。。。

と、ネットで調べたところXPathによる情報抽出が有効であるとの情報がありました。

今回は、Chromeの標準機能でXPathを取得する方法についてまとめていきます。

カメ助

この記事はこんな人にオススメ
・「XPath」って何?
・「XPath」の取得方法が知りたい

スクレイピングする際にはXPathを活用していきたいと思います。

目次

XPathとは

XPathはXML文章中の要素、属性値などを指定するための言語です。
XPathではXML文章をツリーとして捉えることで、要素や属性の位置を指定することができます。
HTMLもXMLの一種とみなすことができるため、XPathを使ってHTML文章中の要素を指定することができます。

Qiitaより

一言でいうと、XPathはHTMLやXMLから特定の部分を指定できるものです。

カメ助

XPathを使うとスクレイピングしたい場所を簡単に指定できるよ

XPathを使用することで、HTMLの構造解析せずにスクレイピングができるようになります。続いてXPathの取得方法を見ていきます。

XPathの取得方法

XPathの取得方法は以下の3ステップです。

  1. XPathを取得したい要素の上で「右クリック」→「検証」をクリック
  2. XPathを取得したい要素の上で「右クリック」→「Copy」→「Copy XPath」をクリック
  3. クリップボードにXPathがコピーされる

①:XPathを取得したい要素の上で「右クリック」→「検証」をクリック

最初にxpathを取得したい要素の上で「右クリック」し、その後「検証」をクリックします。

XPathを取得したい要素の上で「右クリック」→「検証」をクリック

②:XPathを取得したい要素の上で「右クリック」→「Copy」→「Copy XPath」をクリック

開発者ツールが表示されるので、対応する要素(今回はol要素)の上で「右クリック」し、「Copy」→「Copy XPath」とクリックします。

XPathを取得したい要素の上で「右クリック」→「Copy」→「Copy XPath」をクリック

③:クリップボードにXPathがコピーされる

するとクリップボードに以下のようなXPathがコピーされます。スクレイピングをするプログラムに貼り付けて使用しましょう。

XPathの使用例

最後にXPathの使用例について見ていきましょう。

以下のサンプルは、カメ助ブログのページをスクレイピングするものです。

ちなみに以下の場所にXPathを使用しています。

このコードを実行すると、Chromeブラウザが自動で立ち上がり、コンソールに以下の出力表示されます。

以上の結果より、指定した要素の文章情報だけが抽出できていることが分かります。

終わりに

今回はChromeの標準機能で、XPathを取得する方法について紹介しました。XPathを使用することで、HTMLの構造について考えなくて済むのでスクレイピングの作業効率が上がりました。

また、今回の方法はツールなどの追加インストールが不要なので環境依存しないのも嬉しいですね。

XPathを使用してYouTubeのスクレイピングを行ったサンプルはこちら

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

大阪でITエンジニアしています。(8年目に突入)
趣味でウェブサイトに関することをいろいろと勉強しています。

勉強した内容やプログラミングに関する情報を中心に役立つ情報を発信するべく日々ブログを更新しています。

3度の飯よりも「柿の種」をこよなく愛する関西人。

コメント

コメントする

目次
閉じる