首页 > 其他分享 >2023.8.21-2023.8.27暑假第七周博客

2023.8.21-2023.8.27暑假第七周博客

时间:2023-08-26 20:11:23浏览次数:44  
标签:27 21 爬取 可视化 print 2023.8 echarts springboot

2023.8.21

今天主要是对mapreduce进行了一个了解,主要是对爬取下来的数据进行清洗的过程

在本次的过程中,由于爬取的内容比较规整,因此采用的excel进行处理

 mapreduce在我的理解中,对数据进行的是预处理,即把数据变得规整便于处理

map阶段就是写对数据处理,即你想怎么优化这些数据

reduce阶段就是输出数据

最近要开始做信息化领域热词分析了

2023.8.22

今天爬取了博客园的首页中的热点新闻,爬取的过程参考了学长的代码,整体来说还是比较顺利,之后是对爬取下来的内容做了一个排序和输出

 

爬取下来的内容大概就是这些

import requests
import re
import xlwt
url = 'https://news.cnblogs.com/n/digg'
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
}
def get_page(url):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
print('获取网页成功')
print(response.encoding)
return response.text
else:
print('获取网页失败')
except Exception as e:
print(e)
f = xlwt.Workbook(encoding='utf-8')
sheet01 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)
sheet01.write(0, 0, '博客最热新闻') # 第一行第一列
urls = ['https://news.cnblogs.com/n/digg?page={}'.format(i * 1) for i in range(100)]
temp=0
num=0
for url in urls:
print(url)
page = get_page(url)
items = re.findall('<h2 class="news_entry">.*?<a href=".*?" target="_blank">(.*?)</a>',page,re.S)
print(len(items))
print(items)
for i in range(len(items)):
sheet01.write(temp + i + 1, 0, items[i])
temp += len(items)
num+=1
print("已打印完第"+str(num)+"页")
print("打印完!!!")
f.save('Hotword.xls') 爬取完成之后就是需要对热词进行统计,统计完之后存到mysql中   2023.8.23 今天对昨天爬取下来的内容做了一个统计,统计过程中用了python import jieba
import pandas as pd
import re
import mysql.connector
from collections import Counter
if __name__ == '__main__':
filehandle = open("data.txt", "r", encoding='UTF-8');
mystr = filehandle.read()
seg_list = jieba.cut(mystr) # 默认是精确模式
print(seg_list)
stopwords = ['的', ',', ')', '(', '-', '.', '—', ':', '之', '(', ')', '?', '和', '使用', '实现', '、', '与', '!', '你', '了', '中',
'】', '【', '中国', '发布', '公司', '首次', '全球', '正式', '2019', '2020', '亿美元', '20', '10', '&#', '首个', '正在', '最大',
'成为', '第一', '这', '个', '如何', '人类', '什么', '一个', '宣布', '可能', '推出', '没有', '地球', '到底', '回应', '50', '100', '可以',
'开始', '这个', '问题', '为什么', '我们', '背后', '终于', '重磅', '160', '国内', '需要', '为何', '亿元', '发现', '成功', '最强', '不是', '人生']
c = Counter()
for x in seg_list:
if x not in stopwords:
if len(x) > 1 and x != '\r\n':
c[x] += 1

print('\n词频统计结果:')
f = open("finalwords.txt", 'w', encoding='utf-8')
f2 = open("finalnumber.txt", 'w', encoding='utf-8')
for (k, v) in c.most_common(100): # 输出词频最高的前两个词
print("%s:%d" % (k, v))
words = k
number = str(v)
f.write( words )
f2.write(number)
line = '\n'
f.write( line )
f2.write(line)

f.close()

filehandle.close();   上面的词语是自定义的,表示过滤掉这些词语,之后就得到两个文件 一个用于储存热词,另一个用于储存它对应的出现次数 之后需要对存储到数据库中,之后还要做词云的可视化。    2023.8.24 今天主要是做了一下可视化,说实话整个过程可以说是十分的艰辛 首先是我了解到做可视化需要用到springboot+echarts,这两个技术确实都没有 接触过,springboot在我理解就是一种类型,是一种很方便做可视化的代码 echarts则是提供的样式,可以引用 今日仅仅是通过编写,实现了获取数据库中的内容 SpringBoot + MySQL + Echarts数据可视化_springboot可视化_Hadoop_Liang的博客-CSDN博客 参考了上述链接 http://localhost:8080/goods/list 访问该链接成功输出了数据库中的内容,值得注意的是,我试图寻找和javaweb类似的 数据库中的数据名称,发现并没有,最后是在entity中进行修改成功了 之后需要下载echarts,说实话,这个玩意下载起来还是费了不少力气,因为它的官网 十分不稳定,多数情况下都无法访问,因此我找到了他的github网址,但是github同样 不稳定,因此打了个油猴的脚本,访问之后当我搜索却无法找到对应内容,最后是从 csdn上下载了一个,但是后来了解到,echarts和后面要用来做词云图的echarts-wordcloud 需要版本的要求,echarts版本不能过低,否则无法使用词云图的插件,因此我又到处找 最终是下载了一个echart5.x,希望明天做可视化的时候能够顺利,另外,本次开发的过程中 我发现springboot是一个很好用的工具,因此在暑假剩下的这段时间打算学习一下springboot+echarts,另外放上今日的截图

 都是数据库中爬取到的内容

2023.8.25

今天继续做昨日的可视化,在昨天已经实现了获取数据库中数据的基础上,教程中是做了一个柱状图,我想先做一个柱状图出来看看效果,因此就跟着一起做了,这里引入了两个文件 一个是echarts-min.js,一个是jquery-3.5.1.min.js,这两个文件都是用于实现可视化的,同时我发现不知道为什么我的springboot项目下没有static和templates文件夹,因此

我需要自己创建,把上述两个文件放到static/js 文件夹下,在templates下创建了index.html

这时最坑爹的来了,页面404,就很无语,但是我查找半天没有结果,最终找了学长帮我调整了一下代码,可能还是自己没学过就直接上手,之后打开运行,确实没报错,显示了

echarts的标题,但是页面一片空白,一检查网页发现是无法加载js文件,普通的引入无法

加载,在学长的帮助下使用了一个themeleaf

添加了     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

然后在html的头文件添加xmlns:th="http://www.thymeleaf.org"

其实我自己也感觉出是路径的问题了

学长告诉我这是一个类似vue的模板引擎,是springboot原生的,在springboot中

一般不能用写html的方式写引用,因为不是分目录的关系,当运行了html文件后

它会和js文件夹并级,index放在template文件夹目录下的时候会有保护,就访问不到

js文件了,因此需要用到themeleaf,这里也把引用的代码放上来

 

<script th:src="@{js/jquery-3.5.1.min.js}"></script>
<script th:src="@{js/echarts.min.js}"></script>
<script th:src="@{js/echarts-wordcloud.min.js}"></script>

了解之后深感springboot的伟大,因此打算学习spring boot了

今日解决了引用的问题,明日就着手做出词云图。

2023.8.26

今日在昨日调整过后 成功做出了词云图

 

标签:27,21,爬取,可视化,print,2023.8,echarts,springboot
From: https://www.cnblogs.com/Arkiya/p/17642081.html

相关文章

  • 剑指Offer 21. 调整数组顺序使奇数位于偶数前面
    题目链接:剑指Offer21.调整数组顺序使奇数位于偶数前面题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。解法思路:一、快慢指针法:快指针遍历整个数组,当遇到奇数时,将当前数与慢指针所指的数交换,最终......
  • AtCoder Beginner Contest 215
    [ABC215F]DistMax2 二分出min(|xi-xj|,|yi-yj|),双指针维护是否存在满足条件的点对(i,j),假如二分当前值是x,那么|xi-xj|>=x&&|yi-yj|>=x #include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"typedeflonglongll;consti......
  • rhel 7.3搭建MySQL 5.7.21(一主一从GTID半同步复制)
    文档课题:rhel7.3搭建MySQL5.7.21(一主一从GTID半同步复制)数据库:MySQL5.7.21系统:rhel7.3环境:角色 主机名 IP 操作系统 server_id MySQL安装包master mysql-leo-master 192.168.133.111 rhel7.3 1 Percona-Server-5.7.21-20-Linux.x86_64.ssl101.tar.gzslave mysql-leo-s......
  • P2151 [SDOI2009] HH去散步 题解
    传送门简要题意:有\(n\)个人,\(m\)条无向边,走\(e\)条边,满足条件若第\(i\)条边为\(u->v\)则第\(i+1\)条边不能是\(v->u\),问\(s->t\)的方案有多少个,取模45989。因为要满足题目关于边的条件,所以我们考虑点边互换。将\(u-v\)的无向边一分为二变成\(u->v,v->u\),第\(i\)条边记录两个变......
  • Nexpose v6.6.213 for Linux & Windows - 漏洞扫描
    Nexposev6.6.213forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseAug23,2023请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • 8.21-8.27学习总结博客七:Spark机器学习与实时处理
    博客题目:学习总结七:Spark机器学习与实时处理入门内容概要:学习使用Spark进行机器学习和实时数据处理的基本知识,了解Spark的机器学习库和实时处理框架。学习资源:推荐的Spark机器学习和实时处理教程、案例和学习资源。实践内容:通过编写Spark应用程序,实践使用Spark进行机器学习和实时......
  • AE2021下载 AE最新版下载+安装包+安装教程 中文版直装
    AfterEffects是视频编辑工作室的领先创作软件,经常用于电影、电视和网络等行业。它可以创建电影视频标题、标题和过渡,从剪辑中删除对象,并支持动画效果。AfterEffects是一款行业标准的动态图形和视觉效果软件,可帮助用户将任何灵感转化为动画。软件地址:看置顶贴AE主要功能图形视......
  • 2023.8.26 LGJ Round
    A有\(n\)个序列,每个序列长度\(m_i\),每个序列的每个数有权值\(c{i,j}\)。\(\summ_i\len\le10^5\).A和B轮流行动,A只能选择一个序列获得其开头数的权值并删去,B只能选择一个序列获得其末尾数的权值并删去。问A,B分别最多获得多少权值。若所有序列长度为偶数,可以证......
  • P3521 [POI2011] ROT-Tree Rotations
    P3521[POI2011]ROT-TreeRotations首先合并两棵子树的时候只关心子树内值的个数,并不关心子树内具体是什么顺序,引导从下向上线段树合并计算代价。每一个值只会出现一次,首先每个叶子节点开一棵动态开点值域为\(1-n\)的线段树维护,初始只有自己的值的位置为\(1\)。然后对于每......
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:281-300)
    第281题OSPF协议对邻居路由器之间交换的所有数据包都具有认证能力,在VRP系统中,OSPF支持以下哪一种算法?A、DESB、MD5C、AESD、RSA答案:B解析:在VRP系统中,OSPF协议支持的认证算法是MD5。第282题以下关于堆叠拓扑连接方式的描述,错误的是哪一项?A、根据堆叠连线方式的不同,堆叠可组成链......