【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖

这篇具有很好参考价值的文章主要介绍了【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

送书第一期 《用户画像:平台构建与业务实践》
送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》



前言

前几天做了一期送书活动,随着时间流逝,也即将迎来赠书活动抽奖环节,为了活动的公正公开以及可见性,特此开发了一款Web抽奖工具,结合Springboot后台获取博客评论用户接口,打造了一款公开透明的抽奖工具,大家都可以来玩一玩。

工具地址: http://139.159.230.49/draw.html
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

获取博客评论用户接口(url后的参数可替换为想要的博客地址): http://139.159.230.49/csdn/draw/url?url=https://blog.csdn.net/weixin_39709134/article/details/133195146
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划


一、抽奖页面

【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

1.1、页面源代码

页面是单文件引入vue,所有的CSS、JS文件都是放在CDN上,此源代码直接复制即可用

1.2、页面组成

博客赠书抽奖页面,由4部分组成

  • 抽奖博客地址、过滤账号(可过滤作者自身账号)、获取抽奖账号名单按钮
  • 抽奖池用户名单显示区域
  • 抽奖按钮、已抽奖次数
  • 获奖名单

1.3、抽奖博客地址

填写需要抽奖的CSDN博客地址
如(用户画像:平台构建与业务实践):https://blog.csdn.net/s445320/article/details/133265834
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

1.4、过滤账号(可过滤作者自身账号)

在赠书时,我们可过滤掉作者自身账号,或者其他账号。
如不能满足需求,可以自行改造过滤逻辑。

1.5、获取抽奖账号名单按钮

点击此按钮,根据1.3、1.4 所填写的内容,去获取抽奖账号名单(可见第2部分 springboot抽奖账号名单接口)

1.6、抽奖池用户名单显示区域

展示抽奖池用户名单。

  • 多次评论的人,抽中概率会增加,所以会展示多次评论;
  • 中奖的人名单,会从此区域去掉,一个人只能中奖一次(如果有多次评论,也会从名单里全部去掉,不参与下一轮抽奖)

1.7、抽奖按钮、已抽奖次数

在展示抽奖池用户名单后,即可点击抽奖按钮;
已抽奖次数会累加。

1.8、中奖名单

展示中奖者的名单,使用逗号(,)隔开

  • 多次评论的人,中奖概率会增加;
  • 一个人只能中奖一次;
  • 赠送几本书就点击【抽奖按钮】几次

二、springboot抽奖账号名单接口

获取博客评论用户接口(url后的参数可替换为想要的博客地址): http://139.159.230.49/csdn/draw/url?url=https://blog.csdn.net/weixin_39709134/article/details/133195146
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

2.1、接口在服务端已做跨域处理

【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

2.2、根据博客地址获取评论信息

2.2.1、找到博客地址评论信息的CSDN接口

通过Chrome的【开发者工具】,在【网络】区域找到评论信息;

1、切换到【预览】,通过响应数据,确认是我们要找的接口
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

2、切换到【标头】,拿到请求地址,并测试get、post请求类型
【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖,送书活动,前端,ubuntu,云服务,部署,Springboot,Web服务,抽奖,原力计划

2.3、服务端根据博客地址获取评论信息核心代码

1、从URL里提取出博客唯一ID;
2、通过CSDN评论信息接口,获取评论数据信息;
3、格式化数据,返回用户名、用户ID集合信息;

	public List<DrawUser> getDrawUserList(String blogUrl) {
        int page = 1;
        int pageSize = 100;

        RestTemplate restTemplate = new RestTemplate();
        List<DrawUser> drawUserList = new ArrayList<>();

        String blogId = "";
        //处理特殊字符?
        if( blogUrl.indexOf("?") != -1 ) {
            blogUrl = blogUrl.substring(0 , blogUrl.indexOf("?"));
        }
        
		//处理特殊字符#
        if( blogUrl.indexOf("#") != -1 ) {
            blogUrl = blogUrl.substring(0 , blogUrl.indexOf("#"));
        }

        int start = blogUrl.indexOf("details");
        if( start == -1 ) {
            log.info("格式错误");
            return null;
        } else {
            blogId = blogUrl.substring(start+8 , blogUrl.length());
        }

     	//循环加载多页数据,每页100条
        while( true ){
        	//页码每次+1
            String url = "https://blog.csdn.net/phoenix/web/v1/comment/list/"+ blogId +"?page="+ page++ +"&size="+ pageSize +"&fold=unfold";
            HashMap jsonObject =  restTemplate.getForObject(url, HashMap.class);
            if( !jsonObject.get("code").equals(200) ) {
                return drawUserList;
            }

            if( jsonObject.get("code").equals(200) ) {
                LinkedHashMap blogInfoMap = (LinkedHashMap) jsonObject.get("data");
                //获取单次请求的评论信息集合
                List<HashMap> userInfoList = (List<HashMap>) blogInfoMap.get("list");

                for (int i = 0; i < userInfoList.size(); i++) {
                    HashMap userInfo = userInfoList.get(i);
                    //提取出userName、nickName
                    HashMap info = (HashMap) userInfo.get("info");
					//把用户信息添加到集合里
                    drawUserList.add(new DrawUser(info.get("userName")+"" , info.get("nickName")+""));
                }

                if( userInfoList.size() < pageSize ) {
                    log.info("数据加载完毕");
                    return drawUserList;
                }
            }
        }
        log.info("评论人数:" + drawUserList.size());
		//返回用户信息集合
        return drawUserList;
    }

总结

后续还有很多赠书活动,特此开发了一个Web版本抽奖工具,基本上通用(覆盖了一些场景,还谈不上完美),可以解决CSDN博客几百评论用户信息获取问题。文章来源地址https://www.toymoban.com/news/detail-716674.html

到了这里,关于【ubuntu云服务器部署公网Web抽奖工具】CSDN博客评论区用户抽奖的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓Termux搭建web服务器【公网远程手机Android服务器】

    转载自cpolar极点云的文章:【手机建站】Termux+Cpolar内网穿透,搭建可以被外网访问的网站 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限Termux就可以正常运行。 Apache是一个开源网页服务器软

    2024年02月06日
    浏览(69)
  • 【公网远程手机Android服务器】安卓Termux搭建Web服务器

    目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限Termux就可以正常运行。 Apache是一个开源网页服务器软件,

    2024年02月09日
    浏览(49)
  • 公网远程访问macOS本地web服务器

    # 公网访问macOS本地web服务器【内网穿透】 以macOS自带的Apache为例,在本地启用apache服务器,并通过cpolar内网穿透将其暴露至公网,实现在公网环境下访问本地web服务。 1. 启动Apache服务器 在macOS上打开终端,执行命令启动Apache服务器,提示 Passwod ,输入密码 浏览器访问localh

    2024年02月08日
    浏览(39)
  • 本地搭建web服务器、个人博客并发布公网访问

    在现代社会,网络已经成为我们生活离不开的必需品,而纷繁多样的个人博客网站,也成为了个人展示的最好平台。在以往,想要搭建一个个人博客网站需要较深的专业知识,但得益于软件技术的发展,就算普通人也可以在几个软件的帮助下,在自己的电脑或电子设备上,建

    2024年02月14日
    浏览(51)
  • 搭建Web服务器并用cpolar发布至公网访问

    随着互联网的快速发展,网络也成为我们生活中不可缺少的必要条件,为了能在互联网世界中有自己的一片天地,建立一个属于自己的网页就成为很多人的选择。但互联网行业作为资本密集的行业,委托别人建立一个像样的网站要花费不少,不仅要精深设计制作网页,还需要

    2024年02月12日
    浏览(63)
  • 【本地电脑搭建Web服务器并用cpolar发布至公网

    随着互联网的快速发展,网络也成为我们生活中不可缺少的必要条件,为了能在互联网世界中有自己的一片天地,建立一个属于自己的网页就成为很多人的选择。但互联网行业作为资本密集的行业,委托别人建立一个像样的网站要花费不少,不仅要精深设计制作网页,还需要

    2024年02月16日
    浏览(49)
  • 树莓派本地快速搭建web服务器,并发布公网访问

    随着科技的发展,电子工业也在不断进步,我们身边的电子设备也在朝着小型化和多功能化演进,以往体积庞大的电脑也在逐渐缩小体积。树莓派作为一台功能完备的硬件设备,其功耗和体积远小于传统的台式电脑,并且在大部分功能上并不逊于台式机,因此被开发出多种应

    2024年02月15日
    浏览(53)
  • 本地部署Jellyfin影音服务器【公网远程影音库】

    转载自cpolar极点云的文章:零基础搭建私人影音媒体平台【远程访问Jellyfin播放器】 随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但

    2024年02月07日
    浏览(188)
  • 【Jellyfin影音服务器】 本地部署公网远程影音库

    随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但当我们习惯这些需求后,忽然发现自己不知不觉间成了待割的韭菜(3台设备就要加钱

    2024年02月11日
    浏览(44)
  • 【公网远程Jellyfin】——本地部署Jellyfin影音服务器

    随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但当我们习惯这些需求后,忽然发现自己不知不觉间成了待割的韭菜(3台设备就要加钱

    2024年02月07日
    浏览(139)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包