Yahooショッピングのスクレイピングをやってました!1ページ目30件のみしか取れませんが、結構ちゃんと内容取れますね!Class名は調べないといけませんが。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 指定のURLをブラウザで開く
# YahooShoppingの買い物一覧は取得できるのか?
import csv
import requests
from bs4 import BeautifulSoup
#-------------------------------------------------
## main ###
#-------------------------------------------------
if __name__=='__main__':
# 30件取得
# 並び替えはX=9(評価順)
load_url = "https://shopping.yahoo.co.jp/"
search_op = "search?first=1&ss_first=1&ts=1636337247&mcr=8e2a556b12cfc76cfbdc9b34f3a2d87f&sretry=0&X=9&area=28&astk=&aq=&oq=&p="
item = "本革 長財布"
load_url = load_url + search_op + item
# HTML取得
html = requests.get(load_url)
web_data = BeautifulSoup(html.content, "html.parser")
#print(web_data)
item_list = []
setlist = []
ave_value = 0
cnt = 0
for i in web_data.find_all(class_="LoopList__item"):
label = i.find(class_="_2EW-04-9Eayr")
value = i.find(class_="_3-CgJZLU91dR")
setlist = []
setlist.append(str(cnt))
setlist.append(str(label.text))
setlist.append(str(value.text))
print(str(cnt) + ":" + str(label.text) + " ■価格 ¥" + str(value.text))
ave_value = ave_value + int(value.text.replace(",", ""))
item_list.append(setlist)
cnt = cnt + 1
ave = ave_value/(cnt+1)
print("平均価格:" + str(ave))
# 文字コードをShift_JISに指定
with open("item_list.csv", "w", encoding="Shift_jis") as f:
# writerオブジェクトの作成 改行記号で行を区切る
writer = csv.writer(f, lineterminator="\n")
# csvファイルに書き込み
writer.writerows(item_list)
検索文字に対して30件のタイトルと価格が一覧でCSVに吐き出されます。
for文内の[class=]部分を変えることで様々な情報が取得できます。
calssの内容などは「print(web_data)」で出した結果を解析する必要ありです。
参考サイト:https://yonesuke0716.hatenablog.com/entry/2020/02/11/173408
-
開発紹介
ソフトウェア開発でお手伝いさせていただいた案件が論文に! http://www.spring8.or.jp/j…
-
スキャンプログラム
今回研究施設向けのスキャンプログラムの作成を行いました。 こちら新しい技術の導入があり、その技術利用しながら作…
-
TIFヘッダ編集
久しぶりの投稿はPythonプログラム! D-Studioでは現在Pythonをメインに仕事してます! 研究施…
-
最近のお仕事
WEBシステム開発サポート(大手企業向け) ロゴデザイン(結婚相談所) HP更新・作成(企業子会社・研究チーム…
-
仕事紹介
今進行中のお仕事紹介! パルスモーターでステージを動かしながら、荷重値を取得することを制御するプログラム開発中…
-
ヤフオク特定ページのスクレイピング
Yahoo!オークションの特定の商品の監視を行いたい時に使えるのがこれ。まぁ普通に通知機能とかついてるから使い…
