import requests
import json
import pandas as pd
import os
base_url = "http://nmpt.zjamr.zj.gov.cn"
headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",
"Cookie": "SESSION=Nzc0OGViN2YtNmNhZi00NmQ2LTlmNjUtMTUwNWE5MjBhN2Zh",
}
df = pd.DataFrame()
# 消息通知
pushplus_token = os.environ["PUSHPLUS_TOKEN"]
qmsg_key = ""
sc_key = ""
# 设置市场(逗号分开,输入关键字即可)
markets = ["凤起", "中江", "刀茅巷", "安昌"]
def get_response(html_url):
response = requests.get(url=html_url, headers=headers)
response.encoding = response.apparent_encoding
return response
def get_market_price(keyword):
r = get_response(f"{base_url}/scmarket/allNoQueryParams?name={keyword}")
res = json.loads(r.text)
name = res["markets"][0]["name"]
id = res["markets"][0]["id"]
r2 = get_response(f"{base_url}/spgoods/getGoodsPrice?marketid={id}")
res2 = json.loads(r2.text)["newPrice"]
if res2:
data = pd.DataFrame(res2).set_index('index')
data['market'] = name
return data
for i in markets:
df = df.append(get_market_price(i), ignore_index=True)
data = df.sort_values(by=["good_name"])
data.drop(columns=["gather_time"], inplace=True)
data.columns = ["最高价格", "最低价格", "平均价格", "商品", "市场"]
def send_msg(title, content):
data_pushplus = {
"token": pushplus_token,
"title": title,
"content": content.to_html(index=False, justify="center"),
"template": "markdown",
}
data_qmsg = {"msg": content.to_markdown(index=False)}
data_sc = {"text": title, "desp": content.to_markdown(index=False)}
if pushplus_token != "":
requests.post("http://www.pushplus.plus/send", data=data_pushplus)
if qmsg_key != "":
requests.post(f"https://qmsg.zendee.cn/send/{qmsg_key}", data=data_qmsg)
if sc_key != "":
requests.post(f"https://sc.ftqq.com/{sc_key}.send", data=data_sc)
send_msg("今日菜价", data)
data