免费的网站软件(有没有免费的短网址工具)
本文目录
有没有免费的短网址工具
我是@程序员小助手, 本文从技术角度,对短网址进行深度挖掘。
前言
网上已经有产品,用着还不错。可是,作为程序员,从零开始造轮子,开发一个属于自己的短网址服务器,这想法amazing!
通过本文,读者可明白短网址的技术原理,以及通过Go语言实现一个短网址服务。
简明教程
短网址为什么存在?
微博等产品的兴起,活跃了网上的社交圈内大多数用户。但是微博一般有140字限制,如果不转发,单纯评论文字,再加上一段网址,极有可能超过限制而被截断。
短网址应运而生,用较短的一个字符串,替换较长的一个字符串,从观感上讲,效果要友好的多。
从技术原理上说,短网址是一个hash表,用于映射两个字符串的对应关系。
使用键,找到对应的值,重定向进行访问,就完成了整个流程。
短网址算法
短网址的一般结构,比如新浪的 SwuTjn,其中后端的一段6位字符串,就是用来唯一标记一条记录的ID。那么,使用什么算法,可以生成一条无重复的ID呢?
使用通用的做法,使用 0-9 A-Z a-z 一共62个字符,我们看使用hash键位数分别有多少种排列组合情况。
1位:pow(62,1) = 62 种
2位:pow(62,2) = 3844 种
3位:pow(62,3) = 238328 种
4位:pow(62,4) = 14776336 种
5位:pow(62,5) = 916132832 种
6位:pow(62,6) = 56800235584 种
一般情况下,6个字符,就足够使用了,共计568亿种可能。
还有一种情况是,用原网址字符串的MD5值,共计32位,然后通过切分为4段,分别按位与运算,并裁剪到30位。间隔5位选出该位的字符作为该段索引,共有6位。但是这种做法也有几率发生重复,也不直观。
因此本文使用第一种算法生成键ID。
工具准备
分析短网址的特性,包含以下项目:
- 唯一性:键需要全局唯一
- 时效性:键需要有过期时间
- 目标网址唯一,如果重复,则自动返回既有的键。
考虑到上述情形,我们使用redis存储这些对应关系。使用Gin框架作为路由和***,提供对外的API访问。
核心函数
计算机中常见的2进制,8进制,10进制,16进制,我们此处需要使用62个字符,循环表示一个整数,那么可称之为62进制。
下面使用go语言实现这个函数,用于将任意的整数(uint64)转换为(0-9A-Za-z)的字符串。
需要注意,基础的方法,就是循环取余数,根据进制字典,索引相应的字符,然后将各个余数拼接出来,就是结果。
这个计算方法,与2进制,8进制,原理是相同的。
由于字典比较长,有62个键值对,我们仅列出一部分。
上述函数的转换结果,类似于 6489264001 = 75ai0p
功能规划
下面是对于系统路由,创建短链接,以及使用短链接访问目标网址的方法。
1 - 规划路由
路由比较简单,一共2个,一个POST方法,生成短链接;一个是GET方法,访问短链接。
代码如下:
2 - 引入redis并初始化
为了方便演示,我们使用redis存储键值,并设置expire时间。
"github.com/gin-gonic/gin" "github.com/go-redis/redis/v7"我们使用go-redis提供的接口操作redis数据库。
下面是全局的
redis.Client
对象生成,和初始化函数。这样做的好处是,我们全局都可以使用变量 rdb 调用方法操作redis键值。
3 - 实现POST路由方法:add
本函数用于接收form表单数据,生成一个全局唯一的 hash ,作为键,存入redis,设置值和过期时间。
代码如下:
本段我们使用了一个 getCounter 函数,这是设置在redis内的键,将其每次请求创建的时候,自增+1,可保证无重复。根据这个计数器,我们调用 helper的 DecToAny 方法,将其转化为62进制的字符串,作为全局唯一的 hash 值。
下图是 getCounter 的定义:
特别注意的是,helper包,就是我们在“核心函数”部分定义的函数。在主函数体内引用。
4 - 实现GET方法:visit
本函数主要用于使用上一节接口生成的短链接,进行访问,并自动重定向到目标网址。
代码如下:
对于不存在的短链接,或者redis获取失败,返回错误信息。
如果存在,使用 301 = StatusMovedPermanently 状态码重定向到目标地址。
测试
我们使用curl工具,测试上述两个接口。
首先,使用POST表单提交数据:
curl -s -X POST -d "target=
Happy coding :-)
【本文由 @程序员小助手 发布,持续分享编程与程序员成长相关的内容,欢迎关注】免费听书网站和免费听书软件推荐
免费听书软件,我用的比较多的是喜马拉雅App,上学的时候放学的时候喜欢去书店买读者,意林等看看。现在有了喜马拉雅app,一般都在上面听书。我下面推荐几款免费听书软件。
喜马拉雅,荔枝、懒人听书、多听。这几款都有优质的有声散文,都有移动端也有网页端。
这里面,我比较推荐喜马拉雅。
内容种类多
喜马拉雅板块的里面的内容板块很多,可以找到自己想听的内容。
有声小说,新闻谈话,政党园地,综艺节目,相声评书小品,音乐节目,教育培训,财经证券,儿童故事,笑话大全,健康养生,个性电台,广播剧场等。
品牌性
喜马拉雅主打播客节目,喜马拉雅是知名音频分享平台,拥73%的行业占有率,平台数据也是相当可观,如5.3亿激活用户、超700万主播资源、1.09亿MAU、3000万DAU、147分钟的日均收听时长等,也是国内发展最快、规模最大的在线移动音频分享平台。
社交元素
有评论和点赞模块,可以和其他人分享自己的感悟和想法,其他的比较多的是更多的是单向的订阅、关注、收藏等。
音质较好
音质还好,听着挺舒服着,这也是音频软件要具备的吧。
以上是我的建议,希望对你有帮助。
有哪些不错的爬虫软件是可以免费爬取网页数据的
这里介绍2个不错的爬虫软件—Excel和八爪鱼,对于规整的静态网页来说,使用Excel就可以爬取,稍微复杂一些的网页,可以使用八爪鱼来爬取,下面我简单介绍一下这2个软件,主要内容如下:
Excel
Excel大部分人都应该使用过,除了日常的数据统计处理外,也可以爬取网页数据,下面我简单介绍一下爬取过程,主要步骤如下,这里以爬取PM2.5数据为例:
1.首先,新建一个Excel文件并打开,依次点击菜单栏的“数据”-》“自网站”,如下:
2.接着,在弹出的“新建Web查询”对话框中输入需要爬取的网址,点击“转到”,就会加载出我们需要爬取的网页,如下:
3.然后,点击右下角的“导入”按钮,选择需要存放数据的工作表或新建工作表,点击“确定”按钮,就会自动导入数据,成功导入后的数据如下:
4.这里如果你需要定时刷新数据,可以点击菜单栏的“属性”,在弹出的对话框中设置刷新频率,就可定时刷新数据,如下:
八爪鱼
这是一个专门用于采集数据的爬虫软件,简单好学,容易掌握,只需要设置一下页面要爬取的元素,就可以自动爬取数据,并且可以保存为Excel或导出数据库,下面我简单介绍一下这个软件的安装和使用:
1.下载安装八爪鱼,这个直接到官网上下载就行,如下,直接点击下载安装就行:
2.安装完成后,打开这个软件,在主页面中点击“自定义采集”,如下:
3.接着在任务页面中输入需要爬取的网页地址,如下,这里以爬取大众点评数据为例:
4.点击“保存网址”,就能自动打开网页,如下:
5.接着,我们就可以直接选取需要爬取的标签数据,如下,按着操作提示一步一步往下走就行,很简单:
6.设置完成后,直接点击“启动本地采集”,就能自动开始爬取数据,成功爬取后的数据如下,就是我们刚才设置的标签数据:
7.这里点击“导出数据”,可以将爬取的数据导出为你需要的格式,如下,可以是Excel、CSV、数据库等:
至此,我们就完成了利用Excel和八爪鱼来爬取网页数据。总的来说,这2个软件使用起来都非常简单,只要你熟悉一下相关操作,很快就能掌握的,当然,你也可以使用其他爬虫软件,像火车头等,基本功能和八爪鱼差不多,网上也有相关资料和教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
有没有好用免费的大数据分析网站或是软件
好用的数据分析软件基本上离不开这两点:轻松对接任意数据源、一键做分析。SpeedBI数据分析云就是典型的在线数据分析软件,通过在线体验得知,我们不仅可一键上传数据源,更能一键作分析,整个分析过程流畅高效,基本上只需简单点击、拖拉拽就能快速制作一份个性十足的数据可视化分析报表。
轻松对接任意数据源
SpeedBI数据分析云上有很多预设的数据源类型,基本覆盖市面上常见的数据源类型。用户打开SpeedBI数据分析云后,点击选择相应的数据源类型,通过拖拉拽或者是点击选择的方式就能快速上传数据。
一键做分析
SpeedBI数据分析云平台上有大量智能分析功能,操作简单,基本上遵循着点击就能应用的规则。如报表设计页面上常用的一键应用可视化图表、一键汇总或设置行维度等。除了这些基础性操作外,SpeedBI数据分析云还将一些使用频率高的数据运算分析统一预设为运算模型,用户从列表中一键点击就能直接应用,系统将自动调出所需的目标数据并完成运算分析。
甚至于SpeedBI数据分析云准备了两大板块,专用于为用户提供主题多样、设计个性的数据可视化分析报表模板。用户通过这些模板搜索目标模板后一键下载应用,只需替换数据源就能轻松获得一张数据可视化分析报表。由于该功能同样支持用户上传报表模板,因此也常被用作存储个人数据分析报表模板的作用。不少用户都选择将常用分析报表上传为模板,需要一键下载应用、替换个数据源就能完成分析。
这种可轻松对接数据源、一键做分析的数据分析软件不仅在报表制作、数据分析上操作简单,甚至能实现任意终端、任意浏览者的自助式分析。
没有终端限制的自助式分析
不管大屏、电脑屏还是手机屏,用户从中打开报表后就能通过点击的方式自由切换汇总、行维度、运算分析模型,甚至还能自行筛选数据做分析,又或者是针对特定数据进行多图表联动分析。SpeedBI数据分析云就像是提供了一个分析报表框架,用户可以自由搭配分析内容,决定分析方向。
SpeedBI数据分析云是一款难得的可免费在线使用的数据分析软件,可直接从浏览器中打开登录,报表制作完成后将生成链接地址或二维码,只需将链接地址或二维码发送给同事,即可完成分析报表分享。对方直接打开即可展开自助式数据分析。
怎么在电脑上制作网站,用哪个软件免费的
用代码,HTML+ css+ javascript+java+ php语言等
框架: bootstrap、jQuery、vue. js、spring、kindeditor等等
软件: eclipse、idea、webstorm、Chrome、等等
更多文章:

ipad3配置参数配置图片(二手平板ipad3可以支持上网课吗)
2024年7月14日 08:26

黑莓7230刷机(急!!! 我的黑莓7230要刷机,请哪位兄弟帮帮忙,给一个刷机软件,和刷机教程谢谢!!包括ROM!!)
2023年8月27日 17:00

QQ里的美颜功能怎么设置?qq5.5.0.2415在那导出聊天记录
2024年10月10日 00:30

thinkpad t430评测(ThinkPadT400和ThinkPadT430点评对比)
2023年10月21日 08:30

动漫堂被腾讯收购,米二的作品动画化可能性更高了吗?加速世界动画的画风和知音漫客的米二很相似啊(尤其是和御狐之绊)巧合抑或其它原因求解释
2023年5月18日 16:00

vivox5max 多少钱(vivo x5max进货价是多少)
2022年12月29日 21:20