cvpr论文爬取——热词云展示(WEB)

效果图:

Python源码(将数据导入数据库):

 1 import re
 2 import requests
 3 import pymysql
 4
 5 def insertCvpr(value):
 6     db = pymysql.connect("localhost", "root", "root", "cvprlist", charset=‘utf8‘)  # 连接数据库
 7
 8     cursor = db.cursor()
 9     sql="""insert into cvpr values(%s,%s,%s,%s)"""
10     try:
11         cursor.execute(sql, value)
12         db.commit()
13         print(‘插入数据成功‘)
14     except:
15         db.rollback()
16         print("插入数据失败")
17     db.close()
18
19
20 url="http://openaccess.thecvf.com/ICCV2019.py";
21 header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36 Edg/81.0.416.53"}
22 res=requests.get(url,headers=header);
23 res.encoding="utf-8";
24 list=re.findall("""<dt class="ptitle"><br><a href="(.*?)">.*?</a></dt>""",res.text,re.S);
25 for item in list:
26     # print(item)
27     res=requests.get("http://openaccess.thecvf.com/"+item) #爬取到的网站是相对路径,所以要补全,下方同理
28     res.encoding="utf-8"
29     title=re.findall("""<div id="papertitle">(.*?)</div>""",res.text,re.S)
30     summry=re.findall("""<div id="abstract" >(.*?)</div>""",res.text,re.S)
31     link=re.findall("""\[<a href="\.\./\.\./(.*?)">pdf</a>\]""",res.text,re.S)
32     if(len(title)>0):   #有的网站可能爬取不到,数组为空,直接获取会导致程序崩溃
33         insertCvpr((title[0].replace("\n", ""),summry[0].replace("\n", ""),title[0].replace("\n", ""),"http://openaccess.thecvf.com/"+link[0]))

中间过程(热词统计):

由于中间过程写的比较乱,就不放源码了。大体思路如下:

1、先从数据导入文章标题进行单词统计(需要清洗无意义的词)

2、再将统计好的单词按降序顺序选择前百分之20(定义热词)

3、将前20%的热词与文章标题进行比对,将其含有的热词写入到数据库对应的列中,方便前端进行获取

最终结果:

数据库中每个元组都包含:标题、摘要、标题所包含的关键热词以及文章链接;

WEB端展示:

引用插件:echarts.js,echarts-cloud.js

链接:https://pan.baidu.com/s/1D4DaR41X9LvxFZUUrkmNKA
提取码:huah

热词云显示:

 1 <script type="text/javascript" src="js/echarts.js"></script>
 2 <script type="text/javascript" src="layui/layui.all.js"></script>
 3 <script type="text/javascript" src="js/echarts-cloud.js"></script>
 4 <script type="text/javascript">
 5 option = {
 6         title: {
 7             text: ‘词云‘,//标题
 8             x: ‘center‘,
 9             textStyle: {
10                 fontSize: 23
11             }
12
13         },
14         backgroundColor: ‘#F7F7F7‘,
15         tooltip: {
16             show: true
17         },
18         series: [{
19             name: ‘热词分析‘,//数据提示窗标题
20             type: ‘wordCloud‘,
21             sizeRange: [6, 66],//画布范围,如果设置太大会出现少词(溢出屏幕)
22             rotationRange: [-45, 90],//数据翻转范围
23             shape: ‘circle‘,
24             textPadding: 0,
25             autoSize: {
26                 enable: true,
27                 minSize: 6
28             },
29             textStyle: {
30                 normal: {
31                     color: function() {
32                         return ‘rgb(‘ + [
33                             Math.round(Math.random() * 160),
34                             Math.round(Math.random() * 160),
35                             Math.round(Math.random() * 160)
36                         ].join(‘,‘) + ‘)‘;
37                     }
38                 },
39                 emphasis: {
40                     shadowBlur: 10,
41                     shadowColor: ‘#333‘
42                 }
43             },
44
45         }]
46     };
47
48 $(function(){
49     $.post(
50         ‘getCvprList‘,   //初始化获取所有的文章
51         function(msg){
52             showCvpr(msg);
53         }
54     )
55     $.post(
56         ‘getKeyWord‘,     //获取热词形成热词云
57         function(msg){
58             var json=JSON.parse(msg);
59             var size=json.length;
60             data=[];
61             for(i=0;i<size;i++)
62                 data.push({
63                     name:json[i].key,
64                     value:json[i].num
65                 })
66
67             var charts=echarts.init(document.getElementById(‘cloud‘));
68             option.series[0].data=data;
69             charts.setOption(option);
70                charts.on(‘click‘, function (params) {   //点击传回热词名称,并进行查询展示
71                    $(‘#container‘).html("");
72                    var name = params.data.name;
73                    console.log(name);
74                    $.post(
75                             ‘getCvprList‘,
76                             {‘key‘:name},
77                             function(msg){
78                                 showCvpr(msg);
79                             }
80                         )
81
82                 });
83         }
84     )
85 })

每次点击热词云之后都会重新调用后台查询重新生成标题包含关键词的文章以及链接。

展示文章函数:

 1 function showCvpr(msg){
 2     $(‘#container‘).html("");   //每次展示清空容器
 3     var json=JSON.parse(msg);
 4     var size=json.length;
 5     for(i=0;i<size;i++)
 6         $(‘#container‘).append("<div class=‘layui-colla-item‘ lay-accordion>"+
 7                 "<h2 class=‘layui-colla-title‘><a target=‘_blank‘></a></h2>"+
 8                 "<div class=‘layui-colla-content layui-show‘></div>"+
 9                 "</div>");
10     $(‘.layui-colla-item‘).each(function(i){
11         console.log(json[i].summry);
12         $(this).find(‘.layui-colla-title>a‘).attr(‘href‘,json[i].link).text(json[i].title);
13         $(this).find(‘.layui-colla-content‘).text(json[i].summry);
14     })
15 }

原文地址:https://www.cnblogs.com/haheihei/p/12704544.html

时间: 04-14

cvpr论文爬取——热词云展示(WEB)的相关文章

11 信息化领域热词分类分析及解释 第五步按目录爬取热词

功能要求为:1,数据采集,定期从网络中爬取信息领域的相关热词 2,数据清洗:对热词信息进行数据清洗,并采用自动分类技术生成自动分类计数生成信息领域热词目录. 3,热词解释:针对每个热词名词自动添加中文解释(参照百度百科或维基百科) 4,热词引用:并对近期引用热词的文章或新闻进行标记,生成超链接目录,用户可以点击访问: 5,数据可视化展示:① 用字符云或热词图进行可视化展示:② 用关系图标识热词之间的紧密程度. 6,数据报告:可将所有热词目录和名词解释生成 WORD 版报告形式导出. 这次完成了按

Python 爬取 热词并进行分类数据分析-[热词分类+目录生成+关系演示+报告生成]

日期:2020.02.04 博客期:143 星期二   [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 如下图,我已经解决的需求是标黄的部分,剩余需求就只有 热词分类.目录生成.热词关系图展示.数据报告导出 四部分了,这些需求是最紧要完成的,呼~撸起袖子加油干!   1.热词分类 2.热词目录生成 3.热词关系图展示 4.Word模板报告撰写 5.分析格式,制作自动生成报告的 Java 程序 [今日中午12:00更新进度] 原文地址:https://www.cnblo

Python 爬取 热词并进行分类数据分析-[安全性修复]

日期:2020.03.01 博客期:159 星期日 我打算从三方面去实现安全性的保障! 1.访问的数据库权限 因为毕竟在做项目的时候,只是需要从数据库中抽取数据,并不需要对其进行增加.删除或修改.所以,我们 DBLink 需要使用仅支持复合查询或者简单查询的用户来访问数据库!这样,就不怕代码被恶意篡改了,反正你这个用户只能“读”! 2.访问的语句要实现完整! 这个是怎么一回事呢?就是我们平常使用的 sql 查询语句结构可以是 Select * From ... 这样的结构很容易被推算出我们数据表

python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法

本文旨在提供爬取豆瓣电影<我不是药神>评论和词云展示的代码样例 1.分析URL 2.爬取前10页评论 3.进行词云展示 1.分析URL 我不是药神 短评 第一页url https://movie.douban.com/subject/26752088/comments?start=0&limit=20&sort=new_score&status=P 第二页url https://movie.douban.com/subject/26752088/comments?sta

爬虫:爬取海词的翻译内容

在爬取海词的时候遇到了一个问题,在异步加载的时候,需要一个t值,但是这个t值是js加载出来的,直接拼接的,我们无法从网页中得到:  当在搜索框输入单词的时候:你在干嘛 替换下图中的page的值就能达到翻页的目的: 那么当前的目的就是要能够找到这段js代码,同时获取对应输入的t的值,来重新组合url 真正的url只需要如下内容: 我提前把关键字和t都处理了,写成了字典的形式, key:你在干嘛  ff[key]:WuqarCRs {“你好”:“WuqarCRs”} #提前处理成了这种,方便提取 u

爬取网易云音乐评论并使用词云展示

最近听到一首很喜欢的歌,许薇的<我以为>,评论也很有趣,遂有想爬取该歌曲下的所有评论并用词云工具展示. 我们使用chrome开发者工具,发现歌曲的评论都隐藏在以 R_SO_4 开头的 XHR 文件中 接下来思路就很明确,拿到该文件,解析该文件的 json 数据,拿到全部评论. 我们可以看到该文件有两个用JS加密的参数 params 和 encSecKey ,关于这两个加密参数,参考了知乎用户的解答:https://www.zhihu.com/question/36081767 . 步骤: 1.

用Python爬虫对豆瓣《敦刻尔克》影评进行词云展示

最近很想看的一个电影,去知乎上看一下评论,刚好在学Python爬虫,就做个小实例. 代码基于第三方修改 原文链接  http://python.jobbole.com/88325/#comment-94754 #coding:utf-8 from lib2to3.pgen2.grammar import line __author__ = 'hang' import warnings warnings.filterwarnings("ignore") import jieba #分词包

用Python词云展示周董唱过的歌,发现内含秘密

马上开始了,你准备好了么 准备工作 环境:Windows + Python3.6 IDE:根据个人喜好,自行选择 模块: Matplotlib是一个 Python 的 2D数学绘图库 1 pip install matplotlib 2 import matplotlib.pyplot as plt jieba中文分词库 1 pip install jieba 2 import jieba wordcloud词云库 1 pip install wordcloud 2 from wordcloud

爬虫之豆瓣图书评论词云

from urllib import request from bs4 import BeautifulSoup as bs import re import codecs import jieba #分词包 import numpy #numpy计算包 import pandas as pd #分词用到 import matplotlib.pyplot as plt #绘图包 import matplotlib matplotlib.rcParams['figure.figsize'] = (

python 生成18年写过的博客词云

文章链接:https://mp.weixin.qq.com/s/NmJjTEADV6zKdT--2DXq9Q 回看18年,最有成就的就是有了自己的 博客网站,坚持记录,写文章,累计写了36篇了,从一开始的难以下手,到现在成为一种习惯,虽然每次写都会一字一句斟酌,但是每次看到产出,内心还是开心的,享受这样的过程. 这篇文章就是用python 生成自己写的博客词云,平常写的博客都是markdown 格式的,直接把文件传到后台,前端用js去解析文件显示的,所以我这里处理数据就不需要去爬虫网站,直接读文