【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云

serverless服务是腾讯云自研的新一代云原生关系型数据库TDSQ L-C的无服务器架构版,是全Serverless架构的云原生数据库

前言

体验了一下腾讯云刚出的TDSQL-C Serverless,使用它存储数据比较方便,能根据负载动态扩容,现在我们正好用来爬下数据分析一下。

数据源

processOn是比较常用的画图平台,它的模版也是比较丰富,但是基本上都要钱。。。
现在我们爬一下数据,看下这些推荐的模版标题的构成,即什么样的词汇比较容易被推荐,还有它的价格分布是怎样的
在这里插入图片描述

项目目录

config存储配置文件,dao负责链接数据库,logic下面就是具体的逻辑,包括爬虫、分析、词云分词。
在这里插入图片描述

爬虫

具体爬虫代码如下,这里才有异步存储,也正好测试下数据库的性能如何

import ("fmt""github.com/anaskhan96/soup""github.com/spf13/cast""strings""sync""td_test/logic/wordcloud"
)func Crawl(url string) error {res, err := soup.Get(url)if err != nil {return err}var wg sync.WaitGroupdoc := soup.HTMLParse(res)// 模版列表tempList := doc.FindAll("div", "class", "list-item-content")for _, item := range tempList {// 模版详情数据detail := item.Find("div", "class", "temp-item-detail")title := detail.Find("h2").Text()// view clone like数量var countList []intfor _, count := range detail.FindAll("span", "class", "count") {countList = append(countList, cast.ToInt(count.Text()))}// 获取价格owner := item.Find("div", "class", "temp-item-owner")priceStr := owner.Find("span", "class", "count").Text()var price float32if priceStr != "免费" {priceStr = strings.Trim(priceStr, "¥")price = cast.ToFloat32(priceStr)}// 异步存储go func() {wg.Add(1)defer wg.Done()saveToDB(title, countList, price)// 对标题进行分词并存储wordcloud.SplitTitleAndSave(title)}()}wg.Wait()return nil
}

分词

分词库用的是结巴分词,直接用它的精准模式即可

import ("github.com/yanyiwu/gojieba"
)var splitClient *gojieba.Jiebafunc init() {splitClient = gojieba.NewJieba()
}
func SplitTitleAndSave(title string) {words := splitClient.Cut(title, true)for i := range words {m := &TemplateTitleWordModel{Word: words[i]}m.Save()}return
}

分析词云和价格饼状图

词云和饼状图都是用的github.com/go-echarts/go-echarts,使用比较简单,词云需要把数据从数据库中提取出来塞进去就好了,词云代码:

func getTitleListFromDB() []opts.WordCloudData {var wordList []stringdao.GetDB().Raw("select word from template_title_words").Scan(&wordList)wordMap := make(map[string]int)for i := range wordList {wordMap[wordList[i]]++}ans := make([]opts.WordCloudData, 0)for k, v := range wordMap {ans = append(ans, opts.WordCloudData{Value: v, Name: cast.ToString(k)})}return ans
}
func createWordCloud(title string, data []opts.WordCloudData) {wc := charts.NewWordCloud()wc.SetGlobalOptions(charts.WithTitleOpts(opts.Title{Title: title}))wc.AddSeries(title, data).SetSeriesOptions(charts.WithWorldCloudChartOpts(opts.WordCloudChart{SizeRange: []float32{40, 80},Shape:     "cardioid",}),)f, _ := os.Create(fmt.Sprintf("wordcloud_%s.html", title))_ = wc.Render(f)
}

生成的词云如下
在这里插入图片描述
价格分布如下
在这里插入图片描述

小结

可以看到,标题中流程图词汇占比最高,价格中五块钱的模版占比最高,其次是3块钱的,再其次是免费的。
TDSQL-C Serverless使用体验上还不错,比较丝滑,感觉和远程数据库差不多,它动态扩缩容能力也能让我们少操点心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/97585.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React快速入门

最近需要学到react&#xff0c;这里进行一个快速的入门&#xff0c;参考react官网 1.创建和嵌套组件 react的组件封装是个思想&#xff0c;我这里快速演示代码&#xff0c;自己本身也不太熟悉。 代码的路径是src底下的App.js function MyButton() {return (<button>I…

GAN!生成对抗网络GAN全维度介绍与实战

目录 一、引言1.1 生成对抗网络简介1.2 应用领域概览1.3 GAN的重要性 二、理论基础2.1 生成对抗网络的工作原理2.1.1 生成器生成过程 2.1.2 判别器判别过程 2.1.3 训练过程训练代码示例 2.1.4 平衡与收敛 2.2 数学背景2.2.1 损失函数生成器损失判别器损失 2.2.2 优化方法优化代…

git错误记录

露id没有影响&#xff0c;搞得微软不知道我ip一样 git fatal: 拒绝合并无关的历史的错误解决(亲测有效)

Vue elementui 实现表格selection的默认勾选,翻页记录勾选状态

需求&#xff1a;当弹出一个列表页数据&#xff0c;对其进行筛选选择。 列表更新&#xff0c;填充已选数据 主要使用toggleRowSelection 代码如下&#xff1a; <el-table v-loading"loading" :data"drugList" selection-change"handleSelection…

非常适合大学附近的校园跑腿和自习室订座小程序

推荐两款非常适合在大学内和大学周边的项目 这两款小程序分别是校园跑腿系统和自习室在线订座系统 1、校园跑腿系统&#xff0c;第一张图所示&#xff0c;支持多校运营、快递代取、校园跑腿、租借服务、代理中心、跑腿中心、人员管理、订单抽成、数据统计、众包接单、消息通…

软考A计划-系统集成项目管理工程师-法律法规-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

春秋云镜 CVE-2020-13933

春秋云镜 CVE-2020-13933 Shiro < 1.6.0 验证绕过漏洞 靶标介绍 Apahce Shiro 由于处理身份验证请求时出错 存在 权限绕过漏洞&#xff0c;远程攻击者可以发送特制的HTTP请求&#xff0c;绕过身份验证过程并获得对应用程序的未授权访问。 启动场景 漏洞利用 exp /admin…

区块链碎碎念

现在的区块链早已过了跑马圈地的时代&#xff0c;现在还按照以前承接项目的方式做区块链只能是越来越艰难。经过几年的技术沉淀&#xff0c;做区块链项目的公司都已经没落的七七八八了。 区块链不是一个能够快速显现盈利能力的行业&#xff0c;相反这个行业目前的模式还是处于…

对话音视频牛哥:开发RTSP|RTMP直播播放器难不难?难在哪?

我关注的播放器指标 好多开发者跟我交流音视频相关技术的时候&#xff0c;经常问我的问题是&#xff0c;多久可以开发个商业级别的RTMP或RTSP播放器&#xff1f;你们是怎样做到毫秒级延迟的&#xff1f;为什么一个播放器&#xff0c;会被你们做到那么复杂&#xff1f;带着这些…

使用 HTML、CSS 和 JavaScript 创建实时 Web 编辑器

使用 HTML、CSS 和 JavaScript 创建实时 Web 编辑器 在本文中&#xff0c;我们将创建一个实时网页编辑器。这是一个 Web 应用程序&#xff0c;允许我们在网页上编写 HTML、CSS 和 JavaScript 代码并实时查看结果。这是学习 Web 开发和测试代码片段的绝佳工具。我们将使用ifram…

nodejs+vue古诗词在线测试管理系统

一开始&#xff0c;本文就对系统内谈到的基本知识&#xff0c;从整体上进行了描述&#xff0c;并在此基础上进行了系统分析。为了能够使本系统较好、较为完善的被设计实现出来&#xff0c;就必须先进行分析调查。基于之前相关的基础&#xff0c;在功能上&#xff0c;对新系统进…

通过请求头传数据向后端发请求

axios &#xff08;get post请求、头部参数添加&#xff09;傻瓜式入门axios_axiospost请求参数_web_blog的博客-CSDN博客

【Ubuntu】简洁高效企业级日志平台后起之秀Graylog

简介 Graylog 是一个用于集中式日志管理的开源平台。在现代数据驱动的环境中&#xff0c;我们需要处理来自各种设备、应用程序和操作系统的大量数据。Graylog提供了一种方法来聚合、组织和理解所有这些数据。它的核心功能包括流式标记、实时搜索、仪表板可视化、告警触发、内容…

【图论】最短路的传送问题

一.分层图问题&#xff08;单源传送&#xff09; &#xff08;1&#xff09;题目 P4568 [JLOI2011] 飞行路线 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) &#xff08;2&#xff09;思路 可知背景就是求最短路问题&#xff0c;但难点是可以使一条路距离缩短至0&#xf…

抓包工具Fiddler下载与安装

一、Fiddler介绍 1.Fiddler简介 Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具&#xff0c;是目前最常用的 HTTP 抓包工具之一。可以抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等…

【IMX6ULL驱动开发学习】06.DHT11温湿度传感器驱动程序编写与测试

一、DHT11简介 DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加湿。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;具有超小体积、极低功耗的特点…

JQuery快速入门教程

1、JQuery快速入门 1.1、JQuery介绍 jQuery 是一个 JavaScript 库。所谓的库&#xff0c;就是一个 JS 文件&#xff0c;里面封装了很多预定义的函数&#xff0c;比如获取元素&#xff0c;执行隐藏、移动等&#xff0c;目的就 是在使用时直接调用&#xff0c;不需要再重复定义…

【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】

Unity 相关网站整理大全 众所周知&#xff0c;工欲善其事必先利其器&#xff0c;有一个好的工具可以让我们事半功倍&#xff0c;有一个好用的网站更是如此&#xff01; 但是好用的网站真的太多了&#xff0c;收藏夹都满满的(但是几乎没打开用过&#x1f601;)。 所以本文是对…

开源ChatGPT系统源码 采用NUXT3+Laravel9后端开发 前后端分离版本

开源ChatGPT系统源码 采用NUXT3Laravel9后端开发 前后端分离版本 ChatGPT是一种基于AI的聊天机器人技术&#xff0c;它可以帮助用户与聊天机器人进行自然语言交流&#xff0c;以解决用户的问题或满足用户的需求。ChatGPT的核心技术是使用自然语言处理&#xff08;NLP&#xff…

Linux/Ubuntu 的日常升级和安全更新,如何操作?

我安装的是Ubuntu 20.04.6 LTS的Windows上Linux子系统版本&#xff0c;启动完成后显示&#xff1a; Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.4-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.c…