Python爬虫下载新闻,Flask展现新闻(2)

server/2024/11/19 2:38:28/

上篇讲了用Python从新闻网站上下载新闻,本篇讲用Flask展现新闻。关于Flask安装网上好多教程,不赘述。下面主要讲 HTML-Flask-数据 的关系。

简洁版

如图,页面简单,主要显示新闻标题。

分页,使用最简单的分页技术,不用ajax,在链接中增加页码参数 /txw/1 ,由flask根据参数返回新闻。

flask路由代码:

python">#今日头条
@app.route('/txw')
@app.route('/txw/<page>')def today_news(page=1):ua = request.headers.get('User-Agent')mb = from_mobile(ua)#移动端和PC端file = "day_news_m.html" if mb else "day_news.html"news = daily_news(page)return render_template(file,news = news)

每天下载的新闻用文件保存。注,每条新闻设置一个id,分页就是根据id返回。比如现在最新id是10000,每页显示100页, 链接/txw/1 表示 返回id 小于10000大于9900的新闻。

复杂版,按不同频道聚合新闻,包括标题、摘要、热点、收藏等功能,其它比如HTML+CSS设置导航栏后面再讲。

新闻频道划分如下

最新:最新下载的新闻;

关注:根据设置的新闻关键词聚合新闻,这是根据自己的设定来筛选新闻,不是推荐;

要闻:宏观、政策类新闻;

时事:国际政治、军事、局势新闻;

快讯:跟股市相关的突发新闻;

财经:财经类新闻;

科技:半导体、TMT、人工智能等科技类新闻;

英文:国外科技类新闻;

社会:社会、娱乐类新闻,满足偶尔看八卦的需求。

每条新闻下载时根据标题关键词确认频道。比如标题包含以下词语的就是科技:

['通信','5G','6G','AI','人工智能','算力','GPT','openAI','云计算','短剧','元宇宙','游戏','影视','电影','AR','VR','TMT','动漫','漫画', '5.5G','头戴式','微软','Google','苹果','生成式','机器人','公有云','大模型','大数据','英伟达','脑机']

HMTL页面-导航栏

        <thead><td><a href="#top">最新</a></td><td><a href="#关注">关注</a></td><td><a href="#要闻">要闻</a></td><td><a href="#快讯">快讯</a></td><td><a href="#时事">时事</a></td><td><a href="#经济">财经</a></td><td><a href="#TMT">科技</a></td><td><a href="#消费">消费</a></td><td><a href="#Tech">英文</a></td><td><a href="#社会">社会</a></td></thead>

新闻HTML页面主要结构:

    {% for i in news %}<tr><!-- 频道  体验见 http://101.35.10.13/xw --><th id ={{i[0][-2]}} style="text-align: left;border: 0;background-color: #FFFFF0">{{i[0][-2]}}</th><th style="text-align: left;border: 0;background-color: #FFFFF0"><a href="#top" >{{i[0][-1]}}</a></th><th colspan ="12" style="border: 0;background-color: #FFFFF0"></th></tr>{% for j in i %}<tr><th colspan ="14" style="font-size: 16px;text-align: left;padding: 5px"><!-- 标题和链接  --><a href="javascript:;" onclick="show_full_news('{{j[2]}}')"> {{j[0]}}</a></th></tr><tr><!-- 摘要 --><td colspan ="14" style="font-size: 14px;text-align: left;padding: 5px">{{j[1]}}&nbsp{{j[3]}}</td></tr>{% endfor %}{% endfor %}

Flask代码:

python">#新闻
@app.route('/xw')
def news():ua = request.headers.get('User-Agent')mb = from_mobile(ua)try:acct = session['acct']except:acct = ''file = 'news_mb.html' if mb else 'news.html'#返回新闻,acct用于加载关注新闻关键词,若空,则无关注新闻news = chs_news(acct,60,mb)return render_template(file,news = news)

这就是下载新闻、展现新闻的主要思路和技术。当然还有很多细节,如果大家有兴趣,后面详细说。若有疑问,尽管留言。


http://www.ppmy.cn/server/143051.html

相关文章

云渲染与云电脑,应用场景与技术特点全对比

很多朋友问&#xff0c;你们家一会宣传云渲染&#xff0c;一会宣传云电脑的&#xff0c;我到底用哪个&#xff1f;今天&#xff0c;渲染101云渲染和川翔云电脑就来对比下两者的区别&#xff01; 渲染101&川翔云电脑&#xff0c;都是我们的产品&#xff0c;邀请码6666 一、…

llama-cpp模型轻量化部署与量化

一、定义 定义配置环境遇到的问题&#xff0c;交互模式下模型一直输出&#xff0c;不会停止模型量化Qwen1.5-7B 案例demo 二、实现 定义 主要应用与cpu 上的部署框架。由c完成。配置环境 https://github.com/ggerganov/llama.cpp https://github.com/echonoshy/cgft-llm/blo…

理解Go中的append函数及其返回值

在Go语言的编程世界中&#xff0c;切片&#xff08;slice&#xff09;是一种非常灵活且常用的数据结构。它提供了一种方便的方式来处理动态数组。而append函数&#xff0c;作为向切片追加元素的内置函数&#xff0c;其设计和使用方式体现了Go语言的安全性和效率。本文将深入探讨…

【高等数学学习记录】函数的求导法则

一、知识点 &#xff08;一&#xff09;常数和基本初等函数的导数公式 ( C ) ′ 0 (C)0 (C)′0 ( x n ) ′ n x n − 1 (x^n)nx^{n-1} (xn)′nxn−1 ( s i n x ) ′ c o s x (sinx)cosx (sinx)′cosx ( c o s x ) ′ − s i n x (cosx)-sinx (cosx)′−sinx ( t a n x ) ′…

Vue的局部使用

文章目录 什么是Vue?局部使用Vue快速入门 常用指令v-forv-bindv-if & v-showv-onv-model Vue生命周期 Axios案例 什么是Vue? Vue是一款构建用户界面的渐进式的JavaScript框架. 局部使用Vue 快速入门常用指令声明周期 快速入门 准备: 准备html页面,并引入Vue模块(…

golang HTTP基础

http.ListenAndServe http.ListenAndServe 是 Go 语言标准库 net/http 包中的一个函数&#xff0c;用于启动一个 HTTP 服务器并监听指定的端口&#xff0c;以便接收和处理来自客户端的 HTTP 请求。这个函数是构建 Web 服务器和 Web 服务的基础。 函数签名 func ListenAndSer…

室内定位论文精华-无人机与机器人在地下与室内环境中的自主导航与定位新技术

天文导航算法在低成本视觉系统中的应用 关键词 天文导航;自主无人机;GNSS拒止环境;稳定成像系统;星图识别;姿态估计;位置估算 研究问题 现代无人驾驶飞行器(UAV)中,很少使用天文学导航技术。传统的天文学导航依赖于稳定的成像系统,这不仅体积大且重量重,难以满足…

Linux:进程的优先级 进程切换

文章目录 前言一、进程优先级1.1 基本概念1.2 查看系统进程1.3 PRI和NI1.4 调整优先级1.4.1 top命令1.4.2 nice命令1.4.3 renice命令 二、进程切换2.1 补充概念2.2 进程的运行和切换步骤&#xff08;重要&#xff09; 二、Linux2.6内核进程O(1)调度队列&#xff08;重要&#x…