#食材の量のコストをcsvに保存するプログラム
import urllib.request
from bs4 import BeautifulSoup
import re #正規表現モジュール(文字列の削除に使う)
import csv
import pandas as pd
import itertools

numberlist = []
namelist = []
costlist = []
tanilist = []

for num in range(5000):
    try:    
        #副菜で絞り込んだときのURL
        murl = "https://onedannote.com/" + str(num+1) + "/"
        #ユーザーエージェント指定,おまじない
        headers = {
                "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"
                }
        #URLリソースを開く
        request = urllib.request.Request(murl, headers=headers)
        res = urllib.request.urlopen(request)
        #インスタンスの作成
        soup0 = BeautifulSoup(res, 'html.parser')
        
        #名前の取得
        name = soup0.find('h1',class_="productName")
        name = name.get_text()
        #食材名の中に量がある場合があるので、その場合食材から量をとる
        if "・"in name:
            target2 = "・"#・よりも後の量を抽出
            idx2 = name.find(target2)
            tani2 = name[idx2+len(target2):]
            #print(tani2)
            
            name = name.replace("・"+tani2,"")#名前に含まれる量を削除
            namelist.append(name)#名前のリストに入れる
        else:
            namelist.append(name)#名前のリストに入れる
        
        #コストの取得
        a = soup0.find(class_ ="lheight1")
        cost = a.find(class_ ="date bold")
        cost = cost.get_text() #(税込 304円)(前週比:  ± 0 ）を抽出
        
        target = "円"#円よりも前を抽出
        idx = cost.find(target)
        cost2 = cost[:idx]

        target3='税込 ' #税込よりも後を抽出
        idx3 = cost2.find(target3)
        cost3 = cost2[idx3+len(target3):]
        costlist.append(cost3)
        #print(cost3)

        #番号をリストに入れる
        print(num)
        numberlist.append(num)

        #量の取得
        tani = soup0.find(class_="unit")
        tani = tani.get_text()
        if not tani:
            tani = str(tani2)
            tanilist.append(tani)#名前のリストに入れる
        else:
            tanilist.append(tani)#名前のリストに入れる

    except:
        continue

# print("番号:")
# print(numberlist)
# print("食材の名前:")
# print(namelist)
# print("コスト:")
# print(costlist)
# print("量:")
# print(tanilist)

pdlist = pd.DataFrame()
pdlist.insert(0,"量",tanilist)
pdlist.insert(0,"コスト",costlist)
pdlist.insert(0,"名前",namelist)
pdlist.insert(0,"番号",numberlist)
pdlist.to_csv('cost.csv', encoding="shift_jis",errors='ignore', index=False) #csvに保存
#print(pdlist)
print("完了")