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

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

简洁版

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

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

flask路由代码:

#今日头条
@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代码:

#新闻
@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.mzph.cn/pingmian/61199.shtml

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

相关文章

vscode 执行 vue 命令无效/禁止运行

在cmd使用命令可以创建vue项目但是在vscode上面使用命令却不行 一、问题描述 在 cmd 中已确认vue、node、npm命令可以识别运行&#xff0c;但是在 vscode 编辑器中 vue 命令被禁止&#xff0c;详细报错为&#xff1a;vue : 无法加载文件 D:\Software\nodejs\node_global\vue.…

Centos7安装Jenkins脚本一键部署

公司原先Jenkins二进制安装&#xff0c;自己闲来无事在测试主机优化了一下&#xff0c;一键部署&#xff0c;jenkins2.426版本jdk11版本 #!/bin/bashjenkins_file"jenkins-2.426.3-1.1.noarch.rpm"# 更新软件包列表 echo "更新软件包列表..." sudo yum up…

基于AIRTEST和Jmeter、Postman的自动化测试框架

基于目前项目和团队技术升级&#xff0c;采用了UI自动化和接口自动化联动数据&#xff0c;进行相关测试活动&#xff0c;获得更好的测试质量和测试结果。

QT基础 UI编辑器 QT5.12.3环境 C++环境

一、UI编辑器 注意&#xff1a;创建工程时&#xff0c;要勾上界面按钮 UI设计师界面的模块 UI编辑器会在项目构建目录中自动生成一个ui_xxx.h&#xff08;构建一次才能生成代码&#xff09;&#xff0c;来表示ui编辑器界面的代码&#xff0c;属于自动生成的&#xff0c;一定不…

关于win11电脑连接wifi的同时,开启热点供其它设备连接

背景&#xff1a; 我想要捕获手机流量&#xff0c;需要让手机连接上电脑的热点。那么问题来了&#xff0c;我是笔记本电脑&#xff0c;只能连接wifi上网&#xff0c;此时我的笔记本电脑还能开启热点供手机连接吗&#xff1f;可以。 上述内容&#xff0c;涉及到3台设备&#x…

题解 洛谷 Luogu P2440 木材加工 二分答案 C/C++

题目传送门&#xff1a; P2440 木材加工 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/problem/P2440思路 很简单的二分答案 每次找区间中点 m&#xff0c;判断每段长度为 m 时木头段总数是否 > k 即可 有两个细节需要注意一下 1.left 初始值应为 1 而非 0&…

恒利联创携手Pearson VUE 亮相第62届高博会

2024年11月15日-17日&#xff0c;第62届中国高等教育博览会&#xff08;简称“高博会”&#xff09;在重庆举行&#xff0c;恒利联创携手全球领先的考试服务提供商Pearson Vue Certiport共同亮相&#xff0c;为中国院校展现并提供数字化职业技能的教育平台及学练考体系。 作为P…

网络工程师教程第6版(2024年最新版)

网络工程师教程(第6版)由清华大学出版社出版,由工业和信息化部教育与考试中心组编,张永刚、王涛、高振江任主编,具体介绍如下。 相关信息: 出版社: 清华大学出版社 ISBN:9787302669197 内容简介: 本书是工业和信息化部教育与考试中心组织编写的考试用书。本书 根据…

<项目代码>YOLOv8 瞳孔识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪

这里写目录标题 1.目标检测 Detection2.实例分割 segment3.图像分类 classify4.关键点估计 Keypoint detection5.视频帧检测 video detect6.视频帧分类 video classify7.旋转目标检测 obb detect8.替换yolo11模型 给我点个赞吧&#xff0c;谢谢了附录coco80类名称 笔记本 华为m…

uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)

一、问题描述 在使用uniapp进行微信小程序开发时&#xff0c;经常会遇到包体积超过2M而无法上传&#xff1a; 二、解决方案 目前关于微信小程序分包大小有以下限制&#xff1a; 整个小程序所有分包大小不超过 30M&#xff08;服务商代开发的小程序不超过 20M&#xff09; 单个…

STM32 ADC --- 任意单通道采样

STM32 ADC — 单通道采样 文章目录 STM32 ADC --- 单通道采样cubeMX配置代码修改&#xff1a;应用 使用cubeMX生成HAL工程 需求&#xff1a;有多个通道需要进行ADC采样&#xff0c;实现每次采样只采样一个通道&#xff0c;且可以随时采样不同通道的功能。 cubeMX配置 这里我们…

python读取Oracle库并生成API返回Json格式

一、安装必要的库 首先&#xff0c;确保已经安装了以下库&#xff1a; 有网模式 pip install flask pip install gevent pi install cx_Oracle离线模式&#xff1a; 下载地址&#xff1a;https://pypi.org/simple/flask/ # a. Flask Werkzeug-1.0.1-py2.py3-none-any.whl J…

开发 + 安全:网络安全的协作方法

开发团队和安全团队之间由来已久的紧张关系一直是组织内部摩擦的根源。开发人员优先考虑速度和效率&#xff0c;旨在通过快节奏、迭代的开发周期快速交付功能和产品并高效前进。另一方面&#xff0c;安全团队努力平衡风险和创新&#xff0c;但必须专注于使用护栏保护敏感数据和…

SpringAOP模拟实现

文章目录 1_底层切点、通知、切面2_切点匹配3_从 Aspect 到 Advisor1_代理创建器2_代理创建时机3_Before 对应的低级通知 4_静态通知调用1_通知调用过程2_模拟 MethodInvocation 5_动态通知调用 1_底层切点、通知、切面 注意点&#xff1a; 底层的切点实现底层的通知实现底层的…

头歌——VLAN基本配置第一关

任务描述 本关任务&#xff1a;实现跨交换机的VLAN。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.VLAN的定义&#xff0c;2.VLAN的类型。 实验步骤 &#xff08;1&#xff09;新建Packet Tracer拓扑图&#xff1b; &#xff08;2&#xff09;划分VLAN&…

CentOS使用中遇到的问题及解决方法

一、CentOS 7网络配置&#xff08;安装后无法联网问题&#xff09; 现象说明 在安装CentOS系统后&#xff0c;有可能出现无法联网的问题&#xff0c;虚拟机中的网络配置并没有问题&#xff0c;而系统却无法联网,也ping不通。 原因描述 CentOS默认开机不启动网络&#xff0c;因…

【AI+教育】一些记录@2024.11.16

《万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题》 万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题关于 ChatGPT 铺天盖地的信息让人无所适从。本文则试图提炼出五个关键问题&#xff1a;如何理解这次范式突破&#xff0c;未来能达到的技术天花板&#xff0c;行…

CEF编译指南2024 Windows篇-CEF简介(一)

1. 引言 在现代桌面应用程序开发中&#xff0c;Web技术的应用越来越广泛。许多开发者希望能够在传统桌面应用中嵌入Web内容&#xff0c;既保留了原生应用的性能优势&#xff0c;又能享受Web开发的便利性。CEF&#xff08;Chromium Embedded Framework&#xff09;作为一个基于…

机器翻译-基础与模型

一、机器翻译发展历程 基于规则的-->基于实例的-->基于统计方法的-->基于神经网络的 传统统计机器翻译把词序列看作离散空间里的由多个特征函数描述的点&#xff0c;类似 于 n-gram 语言模型&#xff0c;这类模型对数据稀疏问题非常敏感。神经机器翻译把文字序列表示…