mecobalamin’s diary

人間万事塞翁が馬

beautiful soupで更新チェック

iPad mini 5が出るような噂
もしかしたらmini 4が安く出るんではないかと
整備品の値段をappleのサイトでいちいち調べてた

名前と値段のリストをとってくるスクリプトを書いてみた
PythonのBeautiful Soup4をつかう

まずiPadの正規整備品のサイトから
"refurbished-category-grid-no-js"のタグだけとってきて
その中に含まれる"li"のタグでfor文を回して
タグに含まれる製品名と価格を表示する

これだけだけど久々に書こうとしたら忘れてた

from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime

today = datetime.date.today()
todaydetail = datetime.datetime.today()

# date time
print('----------------------------------')
print("Today's refurbished iPad")
print(todaydetail)
print('----------------------------------')

url = "https://www.apple.com/jp/shop/refurbished/ipad"
html = urlopen(url).read()

bsObj = BeautifulSoup(html, 'lxml')

refurbishedipad = bsObj.find("div", {"class":"refurbished-category-grid-no-js"})

for i in refurbishedipad.find_all("li"):
    ipad_name = i.find("a").get_text()
    ipad_price = i.find("div", {"class":"as-price-currentprice as-producttile-currentprice"}).get_text()
    ipad_price = ipad_price.replace(" ", "").replace("\n", "")
    print(ipad_name + " " + ipad_price)

実行するとこんな感じ

----------------------------------
Today's refurbished iPad
2019-03-13 15:55:05.999841
----------------------------------
9.7インチiPad Pro Wi-Fi 32GB - スペースグレイ [整備済製品] ¥50,800(税別)
9.7インチiPad Pro Wi-Fi 32GB - ゴールド [整備済製品] ¥50,800(税別)
9.7インチiPad Pro Wi-Fi 32GB - ローズゴールド [整備済製品] ¥50,800(税別)
10.5インチiPad Pro Wi-Fi 256GB - シルバー [整備済製品] ¥73,800(税別)
10.5インチiPad Pro Wi-Fi 256GB - ゴールド [整備済製品] ¥73,800(税別)
10.5インチiPad Pro Wi-Fi 256GB - ローズゴールド [整備済製品] ¥73,800(税別)
12.9インチiPad Pro Wi-Fi 64GB - ゴールド [整備済製品] ¥73,800(税別)
12.9インチiPad Pro Wi-Fi 256GB - ゴールド [整備済製品] ¥87,800(税別)

atomで実行すると文字化けする
power shellで大丈夫だから
atomの問題っぽい

Atom-runnerの日本語文字化け解決方法 | げーまーこんぶの戯言

process.env.PYTHONIOENCODING = "utf-8";

追加したけど改善してない。。。

14 March 2019追記
PCの再起動とかしてたら文字化けしなくなった
PythonだけでなくRも大丈夫
エラーコードは相変わらず文字化けする