★悩み★
・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を使ってスクレイピングする手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント