查询饿了么品牌馆中有哪些是 <真·五折>

2017-05-04 12:16:38 +08:00
 SaulLawliet
根据多年的订餐经验, 偶尔会有一些真正打 5 折的店
有了它, 就再也不必每次翻啊翻的找了

https://gist.github.com/SaulLawliet/43df488786e4ea431aa39ccf568e30b3
4397 次点击
所在节点    分享创造
23 条回复
jsjjdzg
2017-05-04 15:20:26 +08:00
开始什么都没打印出来,我还以为代码有问题,一行一行看。。。然后,知道真相的我眼泪掉下来 ,周围并没有真打折的。。。
notreami
2017-05-04 15:31:42 +08:00
友情提醒,想看代码,要翻墙(点一下等 5 分钟没下文的经验)
livewithsnow
2017-05-04 15:32:33 +08:00
哈哈哈,我跑了一下也是几秒后什么都没有,那就是真没有了
esophagus
2017-05-04 15:37:30 +08:00
LZ,俺也张江的握爪~
vinew
2017-05-04 15:47:07 +08:00
@notreami 还以为是我打开方式不对🙈
SaulLawliet
2017-05-04 15:50:04 +08:00
@jsjjdzg @livewithsnow 每次点餐之前跑一下, 说不定哪天就有了

@notreami 换个时间点访问吧

@esophagus 握爪, 但我不是张江的, 那是我随意找的位置 ;)
Troevil
2017-05-04 15:53:10 +08:00
什么都没打印出来....
iVeego
2017-05-04 15:59:40 +08:00
有两家,谢谢楼主的脚本。
regiondavid
2017-05-04 18:04:50 +08:00
一家也没有,心塞。。。
jtacm
2017-05-04 18:11:39 +08:00
“# 根据经验 只有所有折扣都是 5 折 才是真正的打折” , 这是什么原理?? 求详解。
eicyan
2017-05-04 18:14:39 +08:00
# 根据经验 所有折扣都是 5 折 是假打折
# 根据经验 有只其中一两款打折,是真打折
SaulLawliet
2017-05-04 19:14:07 +08:00
@jtacm 无原理, 就是平时点餐的经验, 真打折的那种一般都是满 40-20 满 60-30 的
bigzhu
2017-05-04 22:59:25 +08:00
感觉可以再封装一下,弄成个可以直接访问的 web

等有空我来做一个
ruter8
2017-05-04 23:15:59 +08:00
@bigzhu 我也是这么说的 23333
kamen
2017-05-04 23:32:28 +08:00
一个都没有
taresky
2017-05-04 23:45:56 +08:00
@bigzhu 记得来发帖啊
baox2
2017-05-05 02:01:02 +08:00
@bigzhu 哈哈 等你哟
losetear
2017-05-05 10:26:31 +08:00
简单改了下,做了个按折扣排序:
#for i in range(5):
url = URL_TEMPLATE % (20)
data = json.loads(requests.get(url).text)
shops = list({})
for restaurant in data:
id = restaurant["id"]
name = restaurant["name"]
for activity in restaurant["activities"]:
if "type" in activity and activity["type"] == 102: # 102 表示满减
tips = activity["tips"]
flag = True
lastzk = 999
for couple in zip(*[iter(re.findall(r'\d+', tips))]*2):
x = float(couple[0])
y = float(couple[1])
zk = (x-y)/x
if lastzk > zk:
lastzk = zk
shop = [id,name.replace(u'\u2219',u''),tips,lastzk]
#print("%d %s %s %s" % (id, name, zk,tips))
#print("%d %s %s %s" % (shop[0], shop[1], shop[2],shop[3]))
shops.append(shop)
shops.sort(key=lambda shop: shop[3])
for shop in shops:
print("%d %s %s %s" % (shop[0], shop[1], shop[2], shop[3]))
ITOutsider
2017-05-06 13:57:59 +08:00
亲眼看看这些店的厨房我就不想再吃了
bigzhu
2017-05-06 19:10:36 +08:00
@ruter8 @taresky @baox2

和以上同学汇报如下:

今天看完 <摔跤吧!爸爸> 回来后, 愉快的弄了一下

为了让 chrome 能用浏览器取到 location, 还特意去注了 https. 位置信息取到没问题.

把楼主的代码封装成 web api, 把返回的数据按列表显示. 根据 id 贴心的加上 link, 可以直接点击直接访问商家. 一切都很顺利.

然而都开发完毕后, 有两个不幸的消息:

1. 我附近一家打折店都没有
2. 开发前端时调了 10 多次以后, 430 了!

饿了么的反爬机制还是不错的, 反正我服务器 ip 被封的死死的, 似乎都进黑名单了吧.

所以这个问题解决前, 不可能封装成 web 来调用的, 还是自个儿用楼主的 python 脚本跑跑吧.

一概 430 错误 https://eleme.lorstone.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359046

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX