数据结构化与保存

1. 将新闻的正文内容保存到文本文件。

f = open('gzccnews.txt','a',encoding='utf-8')f.write(content)f.close()

  

2. 将新闻数据结构化为字典的列表:

  • 单条新闻的详情-->字典news
  • 一个列表页所有单条新闻汇总-->列表newsls.append(news)
  • 所有列表页的所有新闻汇总列表newstotal.extend(newsls)
    def getNewsDetail(newsUrl): #一篇新闻的全部信息resd = requests.get(newsUrl)resd.encoding = 'utf-8'soupd = BeautifulSoup(resd.text, 'html.parser')  # 打开新闻详情页news = {}news['title'] = soupd.select('.show-title')[0].textinfo = soupd.select('.show-info')[0].text# c = soupd.select('#content')[0].text  # 正文dt = info.lstrip('发布时间:')[:19]  # 发布时间news['dati'] = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')if info.find('来源:') > 0:news['source'] = info[info.find('来源:'):].split()[0].lstrip('来源:')else:news['source'] = 'none'#news['content']  = soupd.select('.show-content')[0].text.strip()#writeNewsDetail(news['content'])news['click ']= getClickCount(newsUrl)news['newsUrl']=newsUrlreturn (news)def getListPage(pageUrl): #一个列表页的全部新闻res = requests.get(pageUrl)res.encoding = 'utf-8'soup = BeautifulSoup(res.text,'html.parser')newslist =[]for news in soup.select('li'):if len(news.select('.news-list-title')) > 0:newsUrl = news.select('a')[0].attrs['href']  # 链接newslist.append(getNewsDetail(newsUrl))return (newslist)newstotal =[]
    firstPageUrl='http://news.gzcc.cn/html/xiaoyuanxinwen/'
    newstotal.extend(getListPage(firstPageUrl))
    

     3. 安装pandas,用pandas.DataFrame(newstotal),创建一个DataFrame对象df.

  • import datetime
    newsTotal =[{'title': '搭建校政协同育人新平台——广州市法律援助处在我校建立工作站', 'dati': datetime.datetime(2018, 4, 13, 16, 19, 2), 'source': '学校综合办', 'click ': 2658, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0413/9225.html'},
    {'title': '我校学子在第九届广东省“蓝桥杯”大赛中喜获一等奖', 'dati': datetime.datetime(2018, 4, 13, 10, 23), 'source': '信息技术与工程学院', 'click ': 2031, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0413/9214.html'},
    {'title': '我校品牌影响力位居广东民办高校前列', 'dati': datetime.datetime(2018, 4, 12, 17, 27, 50), 'source': '学校综合办', 'click ': 2112, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0412/9216.html'},
    {'title': '英国普利茅斯大学代表来访我校', 'dati': datetime.datetime(2018, 4, 12, 14, 1, 24), 'source': '国际学院', 'click ': 2187, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0412/9212.html'},
    {'title': '英国赫尔大学代表来访我校', 'dati': datetime.datetime(2018, 4, 11, 16, 30, 4), 'source': '国际学院', 'click ': 3672, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0411/9205.html'},
    {'title': '我校学子入选2018年世界大学生空手道锦标赛', 'dati': datetime.datetime(2018, 4, 11, 15, 10, 46), 'source': '公共体育部', 'click ': 6643, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0411/9203.html'},
    {'title': '我校参加2018年全国大学生征兵工作视频会议', 'dati': datetime.datetime(2018, 4, 4, 9, 35), 'source': '学生处', 'click ': 27199, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0404/9183.html'},
    {'title': '党情国情在我心,理想信仰伴我行——我校举行十九届三中全会和2018年“两会”知识竞赛', 'dati': datetime.datetime(2018, 4, 1, 11, 57), 'source': '马克思主义学院', 'click ': 6799, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0401/9167.html'},
    {'title': '校党委书记吕泉荣参加结对子班级主题班会', 'dati': datetime.datetime(2018, 4, 1, 9, 28), 'source': '学生工作处', 'click ': 6065, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0401/9163.html'},
    {'title': '我校2018年新增学士学位授予专业评审工作顺利完成', 'dati': datetime.datetime(2018, 3, 30, 17, 10, 12), 'source': '评建与督导办公室', 'click ': 6201, 'newsUrl': 'http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0330/9155.html'},
    {'title': '经济系陆川、白丽老师编著的《电子商务实验》被列为21世纪高等学校电子信息类专业规划教材', 'dati': datetime.datetime(2005, 7, 10, 0, 0), 'source': 'none', 'click ': 1157, 'newsUrl': 'http://news.gzcc.cn/html/2005/xiaoyuanxinwen_0710/2.html'},
    {'title': '我院2005年网页制作比赛圆满结束', 'dati': datetime.datetime(2005, 7, 10, 0, 0), 'source': 'none', 'click ': 1080, 'newsUrl': 'http://news.gzcc.cn/html/2005/xiaoyuanxinwen_0710/3.html'},
    {'title': '我院首届教学工作会议胜利召开', 'dati': datetime.datetime(2005, 7, 10, 0, 0), 'source': 'none', 'click ': 1100, 'newsUrl': 'http://news.gzcc.cn/html/2005/xiaoyuanxinwen_0710/4.html'}]import pandas
    df = pandas.DataFrame(newsTotal)
    

      4. 通过df将提取的数据保存到csv或excel 文件。

  • df.to_excel('gzccnews.xlsx') 
    

      

  • 5. 用pandas提供的函数和方法进行数据分析:

    • 提取包含点击次数、标题、来源的前6行数据
    • 提取‘学校综合办’发布的,‘点击次数’超过3000的新闻。
    • 提取'国际学院'和'学生工作处'发布的新闻。
    • 进取2018年3月的新闻
    • print(df.head(6))
      print(df[(df['click ']>3000)&(df['source']== '学校综合办')])
      #print(df[(df['source']== '国际学院')|(df['source']== '学生工作处')])
      sou = [ '国际学院','学生工作处']
      print(df[df['source'].isin(sou)])
      df1=df.set_index('dati')
      print(df1['2018-03'])
      

        

      • 6. 保存到sqlite3数据库
      • import sqlite3
        with sqlite3.connect('gzccnewsdb.sqlite') as db:df.to_sql('gzccnews',con=db,if_exists='replace')
        

          

      • 7. 从sqlite3读数据
      • with sqlite3.connect('gzccnewsdb.sqlite') as db:df2 = pandas.read_sql_query('SELECT * FROM gzccnews',con=db)
        print(df2)
        

          

      • 8. df保存到mysql数据库

        安装SQLALchemy

      • pip install SQLALchemy
        

          

      • 安装PyMySQL
        pip install PyMySQL
        

          MySQL里创建数据库:create database gzccnews charset utf8;

      • import pymysql
        from sqlalchemy import create_engine
        conn=create_engine('mysql+pymysql://root:@localhost://3306/gzcc?charset=utf8')
        pandas.io.sql.to_sql(df,'gzccnews',con=conn,if_exists='replace')
        

          

      • MySQL里查看已保存了数据。(通过MySQL Client或Navicate。)
      • select * from news
        

          

转载于:https://www.cnblogs.com/jiesheng/p/8874050.html

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

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

相关文章

Gartner:解开关于人工智能的六个迷思

来源:Gartner“人工智能将自动执行所有工作并让人类失业。”“人工智能只是一种虚构的技术。”“机器人将占领整个世界。”围绕人工智能的炒作给主流媒体、董事会议和各企业机构留下了许多迷思。有人担心“万能”的人工智能将占领全世界,有人则认为人工智…

python计算三角函数的计算器_一个工具箱 之 三角函数计算器

三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。也可以等价地用与单位圆有关的各种线段的长度来定义。三角函数在研究三角形和圆等几何形状的性质时有重…

java搭建线程池框架,JAVA线程池管理及分布式HADOOP调度框架搭建

大家看到了线程的好处了吧!单线程需要10S,10个线程只需要1S。充分利用了系统资源实现并行计算。也许这里会产生一个误解,是不是增加的线程个数越多效率越高。线程越多处理性能越高这个是错误的,范式都要合适,过了就不好…

H5项目常见问题汇总及解决方案

H5项目常见问题及注意事项 补充&#xff1a; https://github.com/aligay/fastclick/blob/master/lib/fastclick.js Meta基础知识&#xff1a; H5页面窗口自动调整到设备宽度&#xff0c;并禁止用户缩放页面//一、HTML页面结构 <meta name"viewport" content"…

IBM将收购Instana公司,持续推进其混合云和人工智能战略

来源&#xff1a;IBM中国收购 Instana 后&#xff0c;IBM 将帮助企业在多团队和多云&#xff08;平均 2到 15个&#xff09;环境下更好地管理他们的应用性能。[1]这也是 IBM 持续完善其由人工智能所驱动的自动化能力的又一例证&#xff0c;IBM 的其他相关举措还包括&#xff1a…

python调用大漠找图_[教程贴]按键精灵调用大漠插件后台找图示例

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//------大漠注册-------------------------------------------------------------DMPath "c:\test_game\"注册大漠的文件夹DMVer "3.1233"当前使用的大漠版本号////Call 大漠注册标准版(DMPath, DMVer)//--…

1.php查询数据,查询数据 - ThinkPHP 5.1 完全开发手册

基本查询查询单个数据使用find方法&#xff1a;// table方法必须指定完整的数据表名Db::table(think_user)->where(id,1)->find();最终生成的SQL语句可能是&#xff1a;SELECT * FROM think_user WHERE id 1 LIMIT 1find 方法查询结果不存在&#xff0c;返回 null&#…

[原创]关于在VS解决方案下使用文件夹管理多个项目层次关系的说明

由于所创建的应用项目或类库项目较多&#xff0c;于是将这些类库放到一个文件夹下。在VS解决方案下确实能看到一个文件夹下多个类库项目这种层次关系。如下图所示&#xff1a; 但打开“我的电脑”&#xff0c;看到的只有类库&#xff0c;并未看到维护层次关系的文件夹。如下图所…

java进阶(二)-java小干货

java一些精干知识点分享 2. java小干货2.1循环遍历2.2可变参数2.3 list和数组转化2.3.1 数组转list2.3.2 list转数组 2.4 值传递和地址传递2.4.1值传递2.4.2 地址传递2.4.3易错点总结 2.5 数组数组帮助类Arrays 2.5 基本数据类型和包装类2.5集合2.6文件流2.7java代码块、内部类…

机器直觉

来源&#xff1a;专知当前以深度学习代表的人工智能技术所能解决的问题往往需要具有大量可以借鉴学习的训练 集, 同时要求所获取的信息是完备的. 但在复杂时变的真实应用环境中, 采集到的数据往往包含大量 噪声与不确定性, 且仅包含环境的局部信息, 导致了基于深度学习的人工智…

vb.net读取excel并写入dgv_读取PDF中的表格写入EXCEL?30行代码搞定

办公自动化系列1现在&#xff0c;各类数据分析的书籍&#xff0c;都可以在网上找到PDF版本&#xff1b;同时&#xff0c;百度文库、各类数据统计文库、行业研究等众多论文报告&#xff0c;是通过PDF的形式去展示输出的&#xff1b;但是&#xff0c;令人都头疼的是&#xff0c;各…

reshape [] matlab,matlab之reshape函数

简单来说&#xff0c;reshape(A,m,n)就是用来把原矩阵的元素&#xff0c;按照列读取排成一行&#xff0c;然后按照指定的m*n矩阵再按列放好。比如原矩阵为A 1 2 34 5 67 8 910 11 12我们先给他按列拍成一排(变相说也就是看看reshape(A,1,12))的效…

第一阶段 07类与对象

类与对象 &#xff08;1&#xff09;面向对象&#xff08;简称&#xff1a;OOP&#xff0c;全称&#xff1a;Object Oriented Programming&#xff09; 面向对象是一种编程思想&#xff0c;相对面向过程而言 面向过程 强调的是功能的过程 面向对象 强调功能的结果&#xff0c;不…

英媒:人工智能终于接近人类智能了吗?

文章来源&#xff1a;金融时报作者&#xff1a;John Thornhill图片来源&#xff1a;网络编辑&#xff1a;江上波摘要&#xff1a;GPT-3被誉为人工智能领域的重大突破&#xff0c;有人认为它甚至显示出初步意识迹象&#xff0c;另一些人则指出GPT-3存在可笑的缺陷。它可以大量炮…

大创中期报告怎么写_课题研究中期报告怎么写?这篇范文很说的很详细

中期报告一般要求1.课题简介&#xff1a;课题由来、课题界定、研究目标、课题研究内容。2.研究情况&#xff1a;按时间顺序或内容板块有条理地说明研究工作的开展情况&#xff1b;有详有略、有主有次地陈述研究过程中做了什么、怎么做的。3.阶段成果&#xff1a;客观地阐明本课…

php数组转换编码,PHP数组转换编码类

class arrayiconv{static protected $in;static protected $out;/*** 静态方法,该方法输入数组并返回数组** param unknown_type $array 输入的数组* param unknown_type $in 输入数组的编码* param unknown_type $out 返回数组的编码* return unknown 返回的数组*/static publ…

智能合约开发solidity编程语言实例

智能合约开发用solidity编程语言部署在以太坊这个区块链平台&#xff0c;本文提供一个官方实战示例快速入门&#xff0c;用例子深入浅出智能合约开发&#xff0c;体会以太坊构建去中心化可信交易技术魅力。智能合约其实是“执行合约条款的计算机交易协议”。区块链上的所有用户…

vba九九乘法表代码_VBA代码模块化--数据透视表

本周工作中&#xff0c;用到了数据透视表的操作&#xff0c;这里汇总一下&#xff0c;学习途径来自网络&#xff0c;学习成果我也乐于分享一二~&#xff0c;代码整理为模块&#xff0c;供大家举一反三&#xff0c;可以套用。① 创建数据透视表&#xff0c;及基本设置先展示数据…

IoT 、5G与边缘计算将会擦出怎样的火花?

来源&#xff1a;半导体行业观察边缘计算是数字世界中最令人兴奋的新概念之一。利用占用空间很少的微型数据中心网络&#xff0c;边缘计算使系统能够实时收集并分析重要数据&#xff0c;而不会增加现有基础设施的负担。在物联网系统中&#xff0c;通常以端到端的方式&#xff0…

js 读取php文件内容为空,PHP 读取文件内容代码(txt,js等)

PHP 读取文件内容代码(txt,js等)发布于 2014-10-15 20:15:37 | 128 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&…