【コピペOK】PythonでXPathを使ってスクレイピングする手順

 

★悩み★
・Pythonを使ってWebサイト上からデータを自動的に取得できないかな。
・Pythonで効率的にある箇所のHTMLデータを取得できないかな
・PythonでXPathを使ってWebサイトをスクレイピングできないかな。



こういった「悩み」に答えます。
 

★本記事の内容★
① PythonでXPathを使ってスクレイピングするまでの準備をご紹介
② PythonでXPathを使ってスクレイピングする手順をご紹介



これからご紹介する「PythonでXPathを使ってスクレイピングする手順」を実践したことで、30分以内で「PythonでXPathを使ってWebサイトをスクレイピング」できました。
 

記事の前半では「PythonでXPathを使ってスクレイピングするまでの準備」を解説しつつ、記事の後半では「PythonでXPathを使ってスクレイピングする手順」を紹介します。
 

この記事を読み終えることで、「PythonでXPathを使ってスクレイピング」できる状態になります。
 

ちなみに、「XPath」を使うと、例えば、「サイトの更新を監視するプログラム(ツール)を作成」できます。
具体的な作成手順を知りたい方には、以下の記事がオススメです。
 


 

PythonでXPathを使ってスクレイピングするまでの準備


「PythonでXPathを使ってスクレイピングするまでの準備」に関してご紹介します。

★PythonでXPathを使ってスクレイピングするまでの準備★
手順1: Pythonをインストール
手順2: XPathでスクレイピングするためのPythonライブラリをインストール
手順3: WebサイトのXPathを取得



上記の流れで、「PythonでXPathを使ってスクレイピングするまでの準備」ができます。
 

上記の各手順は、以下の日時で動作確認済みです。
動作確認済み日時:2021年4月17日



以降で、上記「PythonでXPathを使ってスクレイピングするまでの準備」の各手順に関してご説明します。
 

手順1: Pythonをインストール

「手順1: Pythonをインストール」に関してご説明します。


以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール



以上で、「手順1: Pythonをインストール」は完了です。
 

手順2: XPathでスクレイピングするためのPythonライブラリをインストール

「手順2: XPathでスクレイピングするためのPythonライブラリをインストール」に関してご説明します。
 

XPathでスクレイピングするために、「lxml」と「requests」ライブラリをインストールしましょう。



「XPathでスクレイピングするためのPythonライブラリをインストール」に関しては、以下の記事「ステップ2:BeautifulSoupのインストール」をご覧ください。
 



以上で、「手順2: XPathでスクレイピングするためのPythonライブラリをインストール」は完了です。
 

手順3: WebサイトのXPathを取得

「手順3: WebサイトのXPathを取得」に関してご説明します。
 

Google Chromeを用いて、WebサイトのXPathを取得してください。



Google ChromeでXPathを取得する手順に関しては、以下の記事をご覧ください。
 



以上で、「手順3: WebサイトのXPathを取得」は完了です。
 

上記の流れで、PythonでXPathを使ってスクレイピングするまでの準備ができました。


 

PythonでXPathを使ってスクレイピングする手順


「PythonでXPathを使ってスクレイピングする手順」に関してご紹介します。

★PythonでXPathを使ってスクレイピングするまでの流れ★
手順1:PythonでXPathを使ってスクレイピングするプログラムを作成
手順2:「PythonでXPathを使ってスクレイピングするプログラム」を実行



上記の流れで、「PythonでXPathを使ってスクレイピングするまでの流れ」ができます。
 

上記の各手順は、以下の環境で動作確認済みです。
動作確認済み環境:CentOS Linux release 7.8.2003 (Core)



以降で、上記「PythonでXPathを使ってスクレイピングするまでの流れ」の各手順に関してご説明します。
 

手順1:PythonでXPathを使ってスクレイピングするプログラムを作成

「手順1:PythonでXPathを使ってスクレイピングするプログラムを作成」に関してご説明します。
 

「XPathを使ってスクレイピングする」Pythonプログラムを作成しましょう。



本記事では、「Webサイト https://www.yahoo.co.jp/ における下図赤枠のスクレイピング」を例として紹介します。
 



Pythonで「XPathを使ってスクレイピングする」プログラムは、以下となります。プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import lxml.html
import requests

"""
定数
"""
url = "https://www.yahoo.co.jp/" # スクレイピングしたいWebサイト(適宜変更)
target_xpath = '/html/body/div/div/main/div[2]/div[1]/article/div/section/div/div[1]' # 抽出したいXPath(適宜変更)

"""
スクレイピングしたいWebサイトのHTMLを取得
"""
req = requests.get(url)
html = req.text
dom = lxml.html.fromstring(html)

"""
XPathを用いて抽出
"""
scraped_data = dom.xpath(target_xpath)
for index, news in enumerate(scraped_data):
  for line in news.text_content().split(" "):
    print(line)



上記のプログラムを「website-xpath-scraping.py」というファイル名で保存しましょう。
 

以上で、「手順1:PythonでXPathを使ってスクレイピングするプログラムを作成」は完了です。
 

手順2:「PythonでXPathを使ってスクレイピングするプログラム」を実行

「手順2:PythonでXPathを使ってスクレイピングするプログラムを実行」に関してご説明します。


以下のコマンドを実行し、手順1で作成した「PythonでXPathを使ってスクレイピングするプログラム」の動作を確認しましょう。

# python website-xpath-scraping.py
4/17(土)
22:23更新防衛相
沖縄・与那国島を視察NEWコロナ死者
世界で300万人超NEW九州〜関東
18日にかけ黄砂注意CO2事故で息子2人失う
父悲痛学歴ロンダリング
やゆ受け苦悩いじめピークは小学2年
要因はNEWゆたぼん中学巡る宣言
識者見解F1角田
予選Q1でクラッシュNEW



上記のように「ニュース一覧の情報」が表示された場合、「PythonでXPathを使ってスクレイピングできた」と判断できます。
 

以上で、「手順2:PythonでXPathを使ってスクレイピングするプログラムを実行」は完了です。
 

上記の手順で、PythonでXPathを使ってスクレイピングができました。


 

【まとめ】PythonでXPathを使ってスクレイピングする手順

今回の記事を通して、PythonでXPathを使ってスクレイピングする手順をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・Pythonを使ってWebサイト上からデータを自動的に取得できないかな。
・Pythonで効率的にある箇所のHTMLデータを取得できないかな
・PythonでXPathを使ってWebサイトをスクレイピングできないかな。



PythonでXPathを使ってスクレイピングする手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
 

コメント