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)——舆情数据评分系统搭建相关推荐

  1. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  2. 嵌入式Linux学习笔记(1-1)——linux系统搭建

    版权声明:本文为博主原创文章,未经博主允许不得转载. 学习嵌入式linux已经有2年时间,虽然时间不长,但一路走来遇到很多问题,绕了很多弯路.写这篇文章的目的是分享我的经验,以供初学者参考,希望能够帮 ...

  3. 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 ...

  4. Python 学习笔记10

    念念不忘,必有回响. 今天继续学习Python 类. 转载于:https://www.cnblogs.com/bolddream/p/4587755.html

  5. Python学习笔记 - 探索字符串数据操作

    大家好,我是Mr数据杨,设想一下,我们身处<三国演义>的热血世界,赵云.曹操.孔明都是我们的亲密朋友.在这个世界里可以用Python的字符串 + 运算符来合并孔明的锦囊妙计和赵云的勇武之谋 ...

  6. Python学习笔记:一维数据的插值

    插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其它点处的近似值.与拟合不同的是,要求曲线通过所有的已知数据.SciPy的interpolate模块提供了许多对数据进 ...

  7. Python学习笔记——数据分析之数据可视化工具实战案例:世界高峰数据可视化

    世界高峰数据可视化 (World's Highest Mountains) 参考:https://www.kaggle.com/alex64/d/abcsds/highest-mountains/le ...

  8. 【Python学习笔记—保姆版】第四章—关于Pandas、数据准备、数据处理、数据分析、数据可视化

    第四章 欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. #编译器使用的是sypder,其中&q ...

  9. Python学习笔记:Day 10 用户注册和登陆

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  10. Python学习笔记_1_基础_2:数据运算、bytes数据类型、.pyc文件(什么鬼)

    Python学习笔记_1_基础_2:数据运算.bytes数据类型..pyc文件(什么鬼) 一.数据运算 Python数据运算感觉和C++,Java没有太大的差异,百度一大堆,这里就不想写了.比较有意思 ...

最新文章

  1. 《最受欢迎的女友职业排行榜Top10》
  2. Codeforces Round #304 C(Div. 2)(模拟)
  3. mysql性能优化-慢查询分析、优化索引和配置
  4. Java的poi的excel导入怎么判断日期格式的单元格
  5. 第一次作业:艰难的计算机之路
  6. python爬虫实战(2)——爬取知乎热榜内容
  7. 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...
  8. 头条鼓励内容营销吗?创作商品营销内容会不会限制推荐?
  9. OSG仿真案例(5)——创建火光、爆炸(碎片)
  10. requirejs加载layerdate.js遇到的各种坑
  11. 购买计算机键盘,键盘安装步骤是怎样的 怎样选购电脑键盘
  12. fft和freqz的区别
  13. opencv4图像基本变化
  14. JS this指向练习题
  15. 台式计算机选购,电脑什么配置好 教你如何选购一台好的台式电脑
  16. thread.sleep后没有恢复执行_申请法院强制执行很多年了,一直没有拿到钱,还能怎么办?...
  17. uva 10808 - Rational Resistors
  18. 使用ThreeJs从零开始构建3D智能仓库——第三章(选中物体与特效)
  19. Layui之动态选项卡iframe使用
  20. 蓝牙技术|蓝牙技术联盟发最新蓝牙5.3版本规范

热门文章

  1. ctf编码,解密总结
  2. 红米手机停在机器人这里_红米开不了机,开机画面一直显示一个米兔机器人在修理的画面...
  3. 【已解决】mysql报错error Found option without preceding group in config file Dmysql-5.7.25-win32
  4. 微信公众号嵌套html,VUE项目嵌入微信公众号文章URL
  5. qbit linux网页ui不能设置中文,BT下载教程 篇四:qbittorrent 设置补充说明及更换WEB UI...
  6. 三门问题与神奇的贝叶斯大脑
  7. (简单明了)透彻理解电压前馈解耦算法
  8. 【转】中国只有俩导演,一个叫贾樟柯,一个叫姜文
  9. 百度 android 市场占有率,2019百度 排行榜_2019安卓应用市场排行榜Top10
  10. 大数据竞赛MR培训与题型