
昨天看到的是哪个帖子,说要投票功能的来着?
今天正好我就搞了一下这个,功能很简单,就是抓取回复的内容,然后统计一下存到 Redis 缓存起来。
投票的源数据依然在 V2EX 站内,我这边不做长期保存,但我尽量保证这个接口的可用性(如果没有被恶意 or 攻击的话)。
然后看了下 V2EX 的 API 接口,似乎没有可以获取帖子信息的接口?
目前是爬的页面,然后用正则表达式匹配内容,为了减轻压力,统计数据只在帖子被访问时被动更新,最多一分钟爬取一次,整体数据缓存 24 小时,24 小时内被访问,则只重新爬取最新回复(适用回复分页的情况)。
暂时只支持单选,一个人只能投票一次(第一次有效回复为准),统计只与所在帖子和标题关联,同一个帖子可以多个投票,只要标题不同即可。
同一个图片地址在不同的帖子,算不同的投票,数据是分开的。
然后使用方法就是直接获取一个投票的图片地址,然后插入到主题即可,参与投票则回复 #选项标题#。
V2ex 投票生成器 代码已开源: GitHub
PS: 不知道爬虫行为是否被允许,如果违规请 @Livid 说一下,或者给一个允许的频率。
另:由于代码是盲写,可能还有些问题,后续如果出现频率问题,我会限制抓取为 1 秒钟请求一次(全局)。
由于要一套方案同时兼顾黑白两种背景,又不想加背景色,所以只能尽量选择折中的颜色了,这也导致了在两个颜色下都不够明显了...白色背景下不够黑,黑色背景下不够亮...
关于字体太大的问题,参考 v站 的风格,字体选择为一样了,大小稍微调小了一点。
其他的样式外观设计问题,直男审美已经发挥到极限了,有大佬愿意的话可以考虑帮忙调整一下?
由于投票导致评论区都是单一的评论,也从引导文案上稍微改了一下,希望能对评论区稍微友好一点。
关于使用体验问题,(第三方)似乎没有更好的方案了,svg 可以加入带连接按钮来实现点击投票,但是 v站 只能发图片,而 svg 以图片插入时不能交互,而且就算可以交互,站外投票又会有刷票之类的问题。
图片是 SVG 图片,如果拖动图片到新窗口打开,是可以选择复制选项的内容的。
后续我会在 复制 Markdown 代码的地方把问题和选项一并复制。
评论没有更新:由于是第三方爬取票数,统计有大约1分钟的延迟(暂时,可能会更长)
票数不正确:首先看是否延迟问题,统计以来路(仅V站)帖子id为准,如果未识别到来路的帖子 ID 则随机生成票数供预览
未投票可见结果:由于第三方,暂时没有想到更好的办法,无法实现,并且每个人需求不同,难以满足(曲线救国:跟踪用户,刷新后票数可见)...
匿名投票:同上...
骗回(tong)复(bi)的方法增加了:新技能 Get
另:感谢诸位热心的小朋友在评论区的测试
1 imdong OP 首次上线生产环境,当然是自己要先测试一下有没有 BUG 了。 我选择#有意义#,但为了测试 BUG,我投 #无所谓#应该不计入票数才对。 |
2 wingoo 2020-05-20 11:54:05 +08:00 挺好玩的, 就是 黑色背景时, 标题看不到了, 需要适配下 #需要更好的# |
3 Mac 2020-05-20 11:54:13 +08:00 投票不匿名和微博评论只显示精华一样没参考价值 #无所谓# |
4 baobao1270 2020-05-20 11:58:18 +08:00 via Android 我认为非官方支持#没有意义#,顺便测试有没有语义识别功能 |
5 syahd 2020-05-20 12:00:19 +08:00 #有意义#,但是服务器顶得住吗 |
6 kera0a 2020-05-20 12:00:28 +08:00 via iPhone #有意义# 不过黑色主题下不好看, 不是网页浏览的话显示的数据有误 |
7 kera0a 2020-05-20 12:01:13 +08:00 via iPhone |
8 runking 2020-05-20 12:01:13 +08:00 #无所谓##有意义##没有意义# #有意义##没有意义##无所谓# #没有意义##无所谓##有意义# 我是来测试的 |
9 mogita 2020-05-20 12:02:48 +08:00 #有意义# 思路有趣。同 #2 的设计上再加把劲,黑字标题不说还真没看到。。 |
10 ryh 2020-05-20 12:04:55 +08:00 站长估计又哭又笑,笑的是 又可以少一个功能和开支, 哭的是怎么这么多人瞎操心 |
12 YUX PRO 非常#有意义# |
13 dremy 2020-05-20 12:17:39 +08:00 via iPhone 从技术的角度来看,这种实现方式效率太低,#没有意义# 但毕竟也提供了这个功能,从非技术的角度来讲,还是#有意义#的 顺便测试下一个评论能否投两票… |
14 imdong OP |
15 wulu 2020-05-20 12:33:49 +08:00 via Android #需要更好的# |
16 treizeor 2020-05-20 12:34:11 +08:00 没意义 |
17 Telegram 2020-05-20 12:41:06 +08:00 说实话,这个想法我以前想过的,哈哈 |
18 qistchan 2020-05-20 12:43:47 +08:00 #有意义# |
19 love 2020-05-20 12:45:44 +08:00 可以把选某个分支的人一键拉黑吗 |
20 laoyur 2020-05-20 12:48:53 +08:00 #有意义#,但没必要 你的爬虫容易挂 而且有些帖子你不一定爬得到吧(比如被进入某些著名节点后 |
21 JJstyle 2020-05-20 12:52:42 +08:00 #有意义# 赞,限制一下频率就可以了,但是确实还#需要更好的# |
23 CRight 2020-05-20 12:53:49 +08:00 via Android #有意义# 很直观,就不用爬楼了 |
24 azh7138m 2020-05-20 12:55:00 +08:00 via Android ( ··)#需要更好的# (··) |
25 santheniko 2020-05-20 12:59:58 +08:00 #需要更好的 |
26 nathanw 2020-05-20 13:02:10 +08:00 #有意义# 日经帖可以少了很多 |
27 1069401249 2020-05-20 13:03:38 +08:00 #有意义# |
28 LokiSharp 2020-05-20 13:05:01 +08:00 #没意义# 非匿名的没啥意义 |
29 panxianhai 2020-05-20 13:07:36 +08:00 |
30 wellwell 2020-05-20 13:08:41 +08:00 #有意义# |
31 x66 2020-05-20 13:12:21 +08:00 #有意义#想法不错,建议加上投票前是否可以查看结果的选项 |
32 letking 2020-05-20 13:13:05 +08:00 via Android #无所谓# |
33 Maboroshii 2020-05-20 13:14:48 +08:00 #有趣# |
34 a494836960 2020-05-20 13:14:56 +08:00 #有意义# |
35 caijunyi 2020-05-20 13:16:16 +08:00 #有意义# 感觉不错的样子! |
36 mokeyjay 2020-05-20 13:16:17 +08:00 哈哈哈有趣 #有意义# |
37 Fx8m 2020-05-20 13:19:09 +08:00 非常#有意义# |
38 BGYL 2020-05-20 13:29:00 +08:00 via Android #有意义# |
39 alphatoad 2020-05-20 13:29:12 +08:00 可以这样嘛,我发几个选项,你们给我点赞就行了 |
40 smallyu 2020-05-20 13:33:58 +08:00 #有意义# #没意义# #需要更好的# |
41 ETO 2020-05-20 13:35:40 +08:00 #有意义# |
42 hheedat 2020-05-20 13:36:12 +08:00 #有意义# 挺有意思的,赞一个 |
43 BGYL 2020-05-20 13:37:36 +08:00 via Android #如果多一个选项# |
44 motan 2020-05-20 13:38:22 +08:00 #无所谓# #无所谓# #无所谓# |
45 lepchaos 2020-05-20 13:39:10 +08:00 #需要更好的# 测试一下 |
46 bibizhang 2020-05-20 13:43:34 +08:00 #没意义# |
47 szyp 2020-05-20 13:45:18 +08:00 #有意义# |
48 violetlai 2020-05-20 13:45:23 +08:00 #有意义# 只站队的话还是匿名会好一点 |
49 hatw 2020-05-20 13:45:32 +08:00 #无所谓# #无所谓# #无所谓# test 。。。。。 |
50 hh4646908 2020-05-20 13:46:47 +08:00 #有意义# |
51 lawler 2020-05-20 13:48:08 +08:00 #可以新建投票 select,而且是个超长的 select,并且有><script>alert(1)</script>'.>$%/*. 过滤吗?# |
52 glorifiedatom 2020-05-20 13:50:54 +08:00 via iPhone 好东西 #有意义# |
53 anonymm 2020-05-20 13:51:17 +08:00 #需要更好的# |
54 doveyoung 2020-05-20 13:51:51 +08:00 #来份炒饭# |
55 lnim 2020-05-20 13:51:57 +08:00 #有意义# |
56 morizawatt 2020-05-20 13:52:03 +08:00 #有意义# 没必要匿名 |
57 yu5121199 2020-05-20 13:54:19 +08:00 #有意义# |
nbsp; 58 woscaizi 2020-05-20 14:01:48 +08:00 #真的可以投票吗?# |
59 K1W1 2020-05-20 14:02:03 +08:00 #有意义# 很赞 |
60 woscaizi 2020-05-20 14:02:23 +08:00 #更新时间是多久?# |
61 EminemW 2020-05-20 14:02:41 +08:00 #有意义# |
62 yngby 2020-05-20 14:08:36 +08:00 #有意义# |
63 dumbass 2020-05-20 14:09:23 +08:00 #无所谓# |
64 SENSIR 2020-05-20 14:09:29 +08:00 via Android #有意义# |
65 designer 2020-05-20 14:10:06 +08:00 via iPhone 有意义 |
66 ewBuyVmLZMZE 2020-05-20 14:12:11 +08:00 #无所谓# 我看你服务器能不能抗住。 |
67 leaves7i 2020-05-20 14:12:16 +08:00 #没意义#有意义# |
68 qq525266 2020-05-20 14:12:54 +08:00 #无所谓# |
69 lovelive1024 2020-05-20 14:13:04 +08:00 #无所谓# |
70 kisshere 2020-05-20 14:13:31 +08:00 没#有意义# |
71 HolmLoh 2020-05-20 14:14:46 +08:00 #需要更好的# |
72 tutustream 2020-05-20 14:18:00 +08:00 #有意义# |
73 leaves7i 2020-05-20 14:21:59 +08:00 #其他# |
74 Junn 2020-05-20 14:22:03 +08:00 https://www.qs5.org/tools/v2ex_vote/%E4%BD%A0%E8%AE%A4%E4%B8%BAV2ex%E6%94%AF%E6%8C%81%E6%8A%95%E7%A5%A8%E6%9C%89%E6%84%8F%E4%B9%89%E4%B9%88%3F/%E6%9C%89%E6%84%8F%E4%B9%89|%E6%B2%A1%E6%84%8F%E4%B9%89|%E6%97%A0%E6%89%80%E8%B0%93|%E9%9C%80%E8%A6%81%E6%9B%B4%E5%A5%BD%E7%9A%84.svg |
75 cxzweb 2020-05-20 14:22:59 +08:00 #有意义# |
76 ericwoflskin 2020-05-20 14:25:24 +08:00 #有意义# |
77 flowerains 2020-05-20 14:26:58 +08:00 #没意义# 非官方支持意味着服务器的稳定性存疑,这种必定做不长的东西还是放弃吧 |
78 Sfilata 2020-05-20 14:27:23 +08:00 #有意义##需要更好的##测试# |
79 gaoryrt 2020-05-20 14:27:44 +08:00 测试##有意义#没有意义## |
80 Rico802 2020-05-20 14:30:26 +08:00 #有意义# |
81 real3cho 2020-05-20 14:32:20 +08:00 #可以但没必要# |
82 mopig 2020-05-20 14:34:29 +08:00 ## |
83 viosey 2020-05-20 14:35:34 +08:00 #有意义# |
84 ShundL 2020-05-20 14:36:41 +08:00 #有意义# |
85 component 2020-05-20 14:38:31 +08:00 #有意义# |
86 michaelcheng 2020-05-20 14:40:08 +08:00 #有意义# |
87 awen233333 2020-05-20 14:45:53 +08:00 #有意义# #有意义# #没意义# #没意义# |
88 ahaxzh 2020-05-20 14:47:07 +08:00 https://www.qs5.org/tools/v2ex_vote/%E4%BD%A0%E6%98%AF%E7%8B%97%E4%B9%88%EF%BC%9F/%E4%BD%A0%E6%98%AF%EF%BC%81|%E4%BD%A0%E4%B8%8D%E6%98%AF%EF%BC%9F%EF%BC%9F.svg |
89 h9VZ3hilI68DVl36 2020-05-20 14:47:10 +08:00 #有意义# |
90 h9VZ3hilI68DVl36 2020-05-20 14:47:26 +08:00 #有意义##有意义# |
91 hws8033856 2020-05-20 14:47:40 +08:00 #需要更好的');DROP TABEL toupiao;SELECT ('# |
92 ahaxzh 2020-05-20 14:47:52 +08:00 感觉不好做统计 哈哈 |
93 cpsony 2020-05-20 14:51:37 +08:00 #无所*# #有意义# |
94 hooopo 2020-05-20 14:51:39 +08:00 via Android 你做没意义 站长做有意义 |
95 biantaoGG 2020-05-20 14:53:33 +08:00 #无所谓# |
96 lefer 2020-05-20 14:57:14 +08:00 非常#有意义# |
97 hst001 2020-05-20 14:58:46 +08:00 #重金求子# |
98 cloudfox 2020-05-20 14:59:22 +08:00 字太大了,有点丑 |
99 E2gCaBAT5I87sw1M 2020-05-20 15:00:55 +08:00 #有意义# #没意义# #需要更好的# |
100 Vanctol 2020-05-20 15:05:38 +08:00 #有意义# |