Python学习笔记(10)——舆情数据评分系统搭建
python学习笔记(10)——舆情数据评分系统搭建
网络舆情是以网络为载体,以事件为核心,是广大网民情感、态度、意见、观点的表达,传播与互动,以及后续影响力的集合。 带有广大网民的主观性,未经媒体验证和包装,直接通过多种形式发布于互联网上。(来自网络百科)
对于进一步筛选新闻,爬取更有用的信息,【舆情数据评分系统】是一个有用的工具
文章目录
- python学习笔记(10)——舆情数据评分系统搭建
- 一、舆情数据评分系统1.0——根据标题评分
- 二、舆情数据评分系统2.0——根据正文评分
- 三、舆情数据评分系统3.0——解决乱码以及处理非相关信息
一、舆情数据评分系统1.0——根据标题评分
代码练习:
import requests#引用requests库
import re#引用re库headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}#自定义baidu()函数
def baidu(company):url='https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word='+companyres=requests.get(url,headers=headers).textp_source = '新闻来源:(.*?)"'p_date = '发布于:(.*?)"'p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'p_title = '标题:(.*?)"'source=re.findall(p_source, res, re.S)date=re.findall(p_date, res, re.S)href=re.findall(p_href, res, re.S)title=re.findall(p_title, res, re.S)#舆情数据评分系统——根据标题score = []#定义一个空列表keywords = ['违约', '诉讼', '兑付', '阿里', '百度', '腾讯', '京东', '互联网']#设置关键词清单for i in range(len(title)):#遍历标题num = 0#设定初始分为0for k in keywords:#循环判断计算新闻评分if k in title[i]:num -= 5#出现一个关键词扣5分score.append(num)#评分写入列表#数据评分打印for i in range(len(title)):print(str(i + 1) + '.' + title[i] + '(' + date[i] + '-' + source[i] + ')')print(href[i])print(company+'该条舆情评分为'+str(score[i]))#由于评分为数据,要转换为字符串再拼接companys = ['阿里巴巴', '万科集团', '京东','百度','腾讯']
for i in companys:try:#try/except异常处理语句避免程序异常中断baidu(i)print(i + '百度新闻爬取成功'+'\n'+'\n')except:print(i+'百度新闻爬取失败'+'\n'+'\n')
运行结果:
二、舆情数据评分系统2.0——根据正文评分
代码练习:
import requests#引用requests库
import re#引用re库headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}#自定义baidu()函数
def baidu(company):url='https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word='+companyres=requests.get(url,headers=headers).textp_source = '新闻来源:(.*?)"'p_date = '发布于:(.*?)"'p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'p_title = '标题:(.*?)"'source=re.findall(p_source, res, re.S)date=re.findall(p_date, res, re.S)href=re.findall(p_href, res, re.S)title=re.findall(p_title, res, re.S)#舆情数据评分系统——根据标题score = []#定义一个空列表keywords = ['违约', '诉讼', '兑付', '阿里', '百度', '腾讯', '京东', '互联网']#设置关键词清单for i in range(len(title)):#遍历标题num = 0#设定初始分为0#爬取正文try:article=requests.get(href[i],headers=headers,timeout=10).textexcept:article='单个新闻爬取失败'#根据正文和标题进行评分for k in keywords:#循环判断计算新闻评分if (k in title[i])or(k in article):num -= 5score.append(num)#评分写入列表#数据评分打印for i in range(len(title)):print(str(i + 1) + '.' + title[i] + '(' + date[i] + '-' + source[i] + ')')print(href[i])print(company+'该条舆情评分为'+str(score[i]))#由于评分为数据,要转换为字符串再拼接companys = ['阿里巴巴', '万科集团', '京东','百度','腾讯']
for i in companys:try:#try/except异常处理语句避免程序异常中断baidu(i)print(i + '百度新闻爬取成功'+'\n'+'\n')except:print(i+'百度新闻爬取失败'+'\n'+'\n')
运行结果:
三、舆情数据评分系统3.0——解决乱码以及处理非相关信息
代码练习:
import requests#引用requests库
import re#引用re库headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}#自定义baidu()函数
def baidu(company):url='https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word='+companyres=requests.get(url,headers=headers).textp_source = '新闻来源:(.*?)"'p_date = '发布于:(.*?)"'p_href = '<h3 class="news-title_1YtI1"><a href="(.*?)"'p_title = '标题:(.*?)"'source=re.findall(p_source, res, re.S)date=re.findall(p_date, res, re.S)href=re.findall(p_href, res, re.S)title=re.findall(p_title, res, re.S)#舆情数据评分系统——根据标题score = []#定义一个空列表keywords = ['违约', '诉讼', '兑付', '阿里', '百度', '腾讯', '京东', '互联网']#设置关键词清单for i in range(len(title)):#遍历标题num = 0#设定初始分为0#爬取正文try:article=requests.get(href[i],headers=headers,timeout=10).textexcept:article='单个新闻爬取失败'#乱码问题解决代码try:article=article.encode('ISO-8859-1').decode('utf-8')#首先尝试用ISO-8859-1编码,utf-8解码except:try:article=article.encode('ISO-8859-1').decode('gbk')#再尝试用ISO-8859-1编码,gbk解码except:article=article#如上述方法失败则输出源码#处理非相关信息,如热门新闻等插播的与正文无关的内容p_article='<p>(.*?)</p>'#进一步清理数据,由于非相关内容是<li>和</li>包围,所以选择<p></p>间内容可以避免干扰article_main=re.findall(p_article,article)#获取正文内容article=''.join(article_main)#将列表转换为字符串 #根据正文和标题进行评分for k in keywords:#循环判断计算新闻评分if (k in title[i])or(k in article):num -= 5score.append(num)#评分写入列表#数据评分打印for i in range(len(title)):print(str(i + 1) + '.' + title[i] + '(' + date[i] + '-' + source[i] + ')')print(href[i])print(company+'该条舆情评分为'+str(score[i]))#由于评分为数据,要转换为字符串再拼接companys = ['阿里巴巴', '万科集团', '京东','百度','腾讯']
for i in companys:try:#try/except异常处理语句避免程序异常中断baidu(i)print(i + '百度新闻爬取成功'+'\n'+'\n')except:print(i+'百度新闻爬取失败'+'\n'+'\n')
免责声明:代码练习相关内容和方法参考《python金融大数据挖掘与分析》,如文中有侵权内容,请联系作者删除
Python学习笔记(10)——舆情数据评分系统搭建相关推荐
- Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)
Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...
- 嵌入式Linux学习笔记(1-1)——linux系统搭建
版权声明:本文为博主原创文章,未经博主允许不得转载. 学习嵌入式linux已经有2年时间,虽然时间不长,但一路走来遇到很多问题,绕了很多弯路.写这篇文章的目的是分享我的经验,以供初学者参考,希望能够帮 ...
- Head First Python学习笔记4——处理数据
有这么几组数据需要你处理: James 2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22 Julia 2.59,2.11,2:11,2:23,3-10,2-23 ...
- Python 学习笔记10
念念不忘,必有回响. 今天继续学习Python 类. 转载于:https://www.cnblogs.com/bolddream/p/4587755.html
- Python学习笔记 - 探索字符串数据操作
大家好,我是Mr数据杨,设想一下,我们身处<三国演义>的热血世界,赵云.曹操.孔明都是我们的亲密朋友.在这个世界里可以用Python的字符串 + 运算符来合并孔明的锦囊妙计和赵云的勇武之谋 ...
- Python学习笔记:一维数据的插值
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其它点处的近似值.与拟合不同的是,要求曲线通过所有的已知数据.SciPy的interpolate模块提供了许多对数据进 ...
- Python学习笔记——数据分析之数据可视化工具实战案例:世界高峰数据可视化
世界高峰数据可视化 (World's Highest Mountains) 参考:https://www.kaggle.com/alex64/d/abcsds/highest-mountains/le ...
- 【Python学习笔记—保姆版】第四章—关于Pandas、数据准备、数据处理、数据分析、数据可视化
第四章 欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. #编译器使用的是sypder,其中&q ...
- Python学习笔记:Day 10 用户注册和登陆
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)
Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...
最新文章
- 《最受欢迎的女友职业排行榜Top10》
- Codeforces Round #304 C(Div. 2)(模拟)
- mysql性能优化-慢查询分析、优化索引和配置
- Java的poi的excel导入怎么判断日期格式的单元格
- 第一次作业:艰难的计算机之路
- python爬虫实战(2)——爬取知乎热榜内容
- 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...
- 头条鼓励内容营销吗?创作商品营销内容会不会限制推荐?
- OSG仿真案例(5)——创建火光、爆炸(碎片)
- requirejs加载layerdate.js遇到的各种坑
- 购买计算机键盘,键盘安装步骤是怎样的 怎样选购电脑键盘
- fft和freqz的区别
- opencv4图像基本变化
- JS this指向练习题
- 台式计算机选购,电脑什么配置好 教你如何选购一台好的台式电脑
- thread.sleep后没有恢复执行_申请法院强制执行很多年了,一直没有拿到钱,还能怎么办?...
- uva 10808 - Rational Resistors
- 使用ThreeJs从零开始构建3D智能仓库——第三章(选中物体与特效)
- Layui之动态选项卡iframe使用
- 蓝牙技术|蓝牙技术联盟发最新蓝牙5.3版本规范
热门文章
- ctf编码,解密总结
- 红米手机停在机器人这里_红米开不了机,开机画面一直显示一个米兔机器人在修理的画面...
- 【已解决】mysql报错error Found option without preceding group in config file Dmysql-5.7.25-win32
- 微信公众号嵌套html,VUE项目嵌入微信公众号文章URL
- qbit linux网页ui不能设置中文,BT下载教程 篇四:qbittorrent 设置补充说明及更换WEB UI...
- 三门问题与神奇的贝叶斯大脑
- (简单明了)透彻理解电压前馈解耦算法
- 【转】中国只有俩导演,一个叫贾樟柯,一个叫姜文
- 百度 android 市场占有率,2019百度 排行榜_2019安卓应用市场排行榜Top10
- 大数据竞赛MR培训与题型