Pythonで価格ドットコムから製品の最安値を取得する【スクレイピング】

2025年3月16日日曜日

Python

t f B! P L
 今回はスクレイピングをやっていきたいと思います。
これができれば自作PCの見積もりとかができると思ったからです。

!注意!

これから行うスクレイピングという作業は、サービスによっては禁止されています。(Amazonや楽天など)
また、仮に禁止されていなかったとしても繰り返し行うなど負荷をかかることをすると業務妨害となりますので注意しましょう。

Pythonのプロンプトで試してみる

ひとまず気軽にスクレイピングを行っていきましょう。
まずは、URLのソースコードを取得します。

>>> import requests
>>> res = requests.get("https://kakaku.com/item/K0001540017/")
>>> text = res.text
>>> print(text)

ちなみにこうするとくっそ長いソースコードがプリントされます。
ここから、最安値の部分のみを摘出して入手したいわけです。

ひとまず、その最安値が表示されているところはどのようなタグで囲まれているのかを「検証」を使って調べます。


spanのclassがprixeTxtとなっていますね。
ということでその部分だけを摘出できるようなコードを続けて入力していきます。

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(text, "html.parser")
>>> price = soup.find_all("span", {"class":"priceTxt"})
>>> print(price)
# [<span class="priceTxt">¥46,450</span>, <span class="priceTxt">¥46,450</span>]

たぶんこのように配列のようになって帰ってきます。
配列のうち1つめが最安値、2つめがクレジット払いの最安値となっています。
さらに、値段の部分のみを摘出していきます。

>>> price0 = price[0].text
>>> print(price0)
# ¥46,450
>>> import re
>>> price1 = re.sub(r"\D","", price0)
>>> print(price1)
# 46450

一応数値のみの状態にするまでのコードです。
ウェブサイトのソースコードさえ取得できれば、あとはこっちのもんといった感じですね。
一応通しでコードを書いてみます。
以下、サンプルコードです。

import requests
from bs4 import BeautifulSoup
import re

res = requests.get("https://kakaku.com/item/K0001540017/")
text = res.text
soup = BeautifulSoup(text, "html.parser")
price = soup.find_all("span", {"class":"priceTxt"})
price0 = price[0].text
price1 = re.sub(r"\D","", price0)
print(price1)
input()

ということで、価格ドットコムから最安値を摘出るすプログラムでした。
このスクレイピングの知識って意外といろんなことに応用できそうなのでこれからも機会があれば取り扱っていきたいと思います。

ではありがとうございました。

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ