昨天看到的是哪个帖子,说要投票功能的来着?
今天正好我就搞了一下这个,功能很简单,就是抓取回复的内容,然后统计一下存到 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    站长估计又哭又笑,笑的是 又可以少一个功能和开支, 哭的是怎么这么多人瞎操心 😂 
                 | 
            
     11 
                    
                    Yangz      2020-05-20 12:05:44 +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 
                    
                    #有意义# 
                 | 
            
     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 
                    
                    #有意义# 
                 |