4月に千葉県柏市のゴミ捨てアプリ「さんあ〜る」が、Web版としてリリースされました。
ごみ分別アプリ「さんあ~る」がインターネットでも利用できます!
さんあ〜るのごみカレンダーをiframeとしてWPに引っ張ってこようと思ったけど拡縮の問題があり挫折。
あと、画像がいらないな、と思ったのでpython3でスクレイピングしてみた。
# coding: UTF-8
import datetime
import urllib.request
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from bs4 import BeautifulSoup
today = datetime.date.today()
year = today.strftime("%Y")
month = today.strftime("%m")
# アクセスするURL
# XXXXXは地区番号らしい
url = 'https://manage.delight-system.com/threeR/web/calendar?jichitaiId=kashiwashi&areaId=22125&year={year}&month={month}'.format(year=year, month=month)
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, "html.parser")
table = soup.find_all("table")
cal = []
for tag in table :
try:
#import pdb; pdb.set_trace()
days = tag.find_all("td") # カレンダーのセル数(7日×週)
for day in days:
span = day.find_all('span')
tmp = []
if len(span) > 0 :
for num in range(len(span)):
try:
if span[num].get("class")[0] in ('common','sat','sun'):
tmp.append(span[0].string) # 日
tmp.append(span[0].get('class')[0]) # 曜
elif span[num].get("class")[0] in 'trash_kind_name': # ゴミ種類
tmp.append(span[num].string)
cal.append(tmp)
except:
pass
else : # 空白セル
cal.append([''])
except:
pass
print(cal)
後で、オリジナルのカレンダーの情報に充てがう予定なのでlistに入れる。
結果
[[''], [''], [''], [''], [''], ['1', 'common'], ['2', 'sat'], ['3', 'sun'], ['4', 'common', '可燃ごみ'], ['4', 'common', '可燃ごみ'], ['5', 'common', '不燃ごみ'], ['5', 'common', '不燃ごみ'], ['6', 'common', '容器包装プラスチック類'], ['6', 'common', '容器包装プラスチック類'], ['7', 'common', '可燃ごみ'], ['7', 'common', '可燃ごみ'], ['8', 'common'], ['9', 'sat'], ['10', 'sun'], ['11', 'common', '可燃ごみ'], ['11', 'common', '可燃ごみ'], ['12', 'common'], ['13', 'common', '資源品', '容器包装プラスチック類'], ['13', 'common', '資源品', '容器包装プラスチック類'], ['13', 'common', '資源品', '容器包装プラスチック類'], ['14', 'common', '可燃ごみ'], ['14', 'common', '可燃ごみ'], ['15', 'common'], ['16', 'sat'], ['17', 'sun'], ['18', 'common', '可燃ごみ'], ['18', 'common', '可燃ごみ'], ['19', 'common', '不燃ごみ'], ['19', 'common', '不燃ごみ'], ['20', 'common', '容器包装プラスチック類'], ['20', 'common', '容器包装プラスチック類'], ['21', 'common', '可燃ごみ'], ['21', 'common', '可燃ごみ'], ['22', 'common'], ['23', 'sat'], ['24', 'sun'], ['25', 'common', '可燃ごみ'], ['25', 'common', '可燃ごみ'], ['26', 'common'], ['27', 'common', '資源品', '容器包装プラスチック類'], ['27', 'common', '資源品', '容器包装プラスチック類'], ['27', 'common', '資源品', '容器包装プラスチック類'], ['28', 'common', '可燃ごみ'], ['28', 'common', '可燃ごみ'], ['29', 'common'], ['30', 'sat']]
cal[n][1]の値は、
sat /土曜
sun / 祝祭日
common / 平日
らしい。