聚合新闻头条

一、确定新闻来源

二、有头条新闻的提取头条新闻

from requests_html import HTMLSession        #导入爬虫所需的模块

def get_news():
    ans_news_titles=[]    #定义一个空列表
    session=HTMLSession()  #创建爬虫模块对象
    r=session.get('https://news.baidu.com/')    #获取页面
    title1_baidu=r.html.find('#pane-news > div > ul > li.hdline0 > strong > a',first=True)  #查找css选择器对应的内容,
    ans_news_titles.append(title1_baidu)
    titles_baidu=r.html.find('#pane-news > ul:nth-child(n) > li.bold-item > a')
    ans_news_titles+=titles_baidu
    for title in ans_news_titles:
        print(title.text)

if __name__ == '__main__':
    get_news()

 三、定时

from apscheduler.schedulers.blocking import BlockingScheduler

def my_print():
    print('123!')

sched=BlockingScheduler()
sched.add_job(my_print,'interval',seconds=5)
sched.start()

 

 每两分钟执行一次

add_job(my_print, 'interval', minutes = 2)

 

 在 2019-01-01 09:30:00 2019-02-01 11:00:00 的时间范围内,每 2 小时执行一次 my_print:

add_job(my_print, 'interval', hours=2, start_date='2019-01-01 09:30:00', end_date='2019-02-01 11:00:00')

 

在 2019-01-01 09:30:00 执行一次 my_print:

add_job(my_print, 'date', run_date='2019-01-01 09:30:00')

 

每个整点执行一次 my_print:

add_job(my_print, 'cron', hour='*')

 

每周一到周五 05:30 执行 my_print:

add_job(my_print, 'cron', day_of_week='mon-fri', hour=5, minute=30)

 

下面的代码实现了在 6、7、8、11、12 月份的第三个星期五的 00:00、01:00、02:00、03:00 获取并输出一次百度热点新闻。

from apscheduler.schedulers.blocking import BlockingScheduler
from requests_html import HTMLSession

def get_news():
    ans_news_titles = []
    session = HTMLSession()
    r = session.get('https://news.baidu.com/')
    title1_baidu = r.html.find('#pane-news > div > ul > li.hdline0 > strong > a', first=True)
    ans_news_titles.append(title1_baidu)
    titles_baidu = r.html.find('#pane-news > ul:nth-child(n) > li.bold-item > a')
    ans_news_titles += titles_baidu
    for title in ans_news_titles:
        print(title.text, title.absolute_links)

if __name__ == '__main__':
    sched=BlockingScheduler()
    sched.add_job(get_news,'cron',month='6-8,11-12',day='3rd fri',hour='0-3')
    sched.start()

 

四、可视化展示

分词

import jieba

seg_list=jieba.cut('Python123!Python123为你提供优秀的 Python 学习工具、教程、平台和更好的学习体验。',cut_all=True)
word_split=' '.join(seg_list)
print(word_split)

 可视化展示

from wordcloud import WordCloud
import jieba
import time


seg_list=jieba.cut('Python123!Python123为你提供优秀的 Python 学习工具、教程、平台和更好的学习体验。',cut_all=True)
word_split=' '.join(seg_list)

my_wordcloud=WordCloud(background_color='white',font_path='C:\Windows\Fonts\simfang.ttf',max_words=100,width=1600,height=800)

my_wordcloud=my_wordcloud.generate(word_split)

now=time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time()))
my_wordcloud.to_file(now+'.png')

 

 

 结果是这样的,你发现了什么?是不是频率最高的 “的” 并没有显示在词云上呢?说明 wordcloud 帮我们做了过滤,当然你也可以自定义添加过滤词,你的词云中就不会显示啦。

爬取新闻,并生成云图

from apscheduler.schedulers.blocking import BlockingScheduler
from requests_html import HTMLSession
import jieba
from wordcloud import WordCloud
import time

def get_news():
    print('开始爬取热点新闻')
    ans_news_titles=[]
    session=HTMLSession()
    #获取百度新闻
    r=session.get('https://news.baidu.com/')
    title1_baidu=r.html.find('#pane-news > div > ul > li.hdline0 > strong > a',first=True)
    ans_news_titles.append(title1_baidu.text)
    titles_baidu=r.html.find('#pane-news > ul:nth-child(n) > li.bold-item > a')
    for title_baidu in titles_baidu:
        ans_news_titles.append(title_baidu.text)

    #获取网易新闻
    r=session.get('https://news.163.com/')
    title1s_163=r.html.find('#js_top_news > h2:nth-child(n) > a')
    for title1_163 in title1s_163:
        ans_news_titles.append(title1_163.text)

    #获取新浪新闻
    r=session.get('https://news.sina.com.cn/')
    title1s_sina=r.html.find('#syncad_1 > h1:nth-child(n) > a')
    for title1_sina in title1s_sina:
        ans_news_titles.append(title1_sina.text)
    title2s_sina=r.html.find('#ad_entry_b2 > ul:nth-child(n) > li.topli14 > a')
    for title2_sina in title2s_sina:
        ans_news_titles.append(title2_sina.text)


    word_jieba=jieba.cut(' '.join(ans_news_titles),cut_all=True)
    word_split=' '.join(word_jieba)
    my_wordcloud=WordCloud(background_color='green',font_path='C:\Windows\Fonts\simkai.ttf',max_words=100,width=1600,height=800)
    #生成词云
    my_wordcloud=my_wordcloud.generate(word_split)
    #以当前时间为名称存储词云
    now=time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time()))
    my_wordcloud.to_file(now+'.png')



if __name__ == '__main__':
    sched = BlockingScheduler()
    get_news()
    #之后每周一到周五的8点30执行一次
    sched.add_job(get_news,'cron',day_of_week='mon_fri',hour=8,minute=30)
    sched.start()

 

 

相信你已经学会:

  • 当需要定时时,可以使用 apscheduler 框架
  • 当需要中文分词时,使用 jieba 库
  • 当需要形成词云时,使用 wordcloud 库

 

转载于:https://www.cnblogs.com/start20180703/p/10368947.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值