怎么用Python制作一个每天新闻热点
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要讲解了"怎么用Python制作一个每天新闻热点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用Python制作一个每天新闻热点"吧!基
千家信息网最后更新 2025年02月19日怎么用Python制作一个每天新闻热点
这篇文章主要讲解了"怎么用Python制作一个每天新闻热点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用Python制作一个每天新闻热点"吧!
基本开发环境
Python 3.6
Pycharm
import parselimport requestsimport re
目标网页分析
今天就爬取新闻网中的国际新闻栏目
可以看到相关的数据接口,里面有新闻标题以及新闻详情的url地址
如何提取url地址
1、转成json,键值对取值;
2、用正则表达式匹配url地址;
两种方法都可以实现,看个人喜好
根据接口数据链接中的pager 变化进行翻页,其对应的就是页码。
详情页可以看到新闻内容都是在 div标签里面 p 标签内,按照正常的解析网站即可获取新闻内容。
保存方式
1、你可以保存txt文本形式
2、也可以保存成PDF形式
整体爬取思路总结
在栏目列表页中,点击更多新闻内容,获取接口数据url
接口数据url中返回的数据内容中匹配新闻详情页url
使用常规解析网站操作(re、css、xpath)提取新闻内容
保存数据
代码实现
获取网页源代码
def get_html(html_url): """ 获取网页源代码 response :param html_url: 网页url地址 :return: 网页源代码 """ response = requests.get(url=html_url, headers=headers) return response
获取每篇新闻url地址
def get_page_url(html_data): """ 获取每篇新闻url地址 :param html_data: response.text :return: 每篇新闻的url地址 """ page_url_list = re.findall('"url":"(.*?)"', html_data) return page_url_list
文件保存命名不能含有特殊字符,需要对新闻标题进行处理
def file_name(name): """ 文件命名不能携带 特殊字符 :param name: 新闻标题 :return: 无特殊字符的标题 """ replace = re.compile(r'[\\\/\:\*\?\"\<\>\|]') new_name = re.sub(replace, '_', name) return new_name
保存数据
def download(content, title): """ with open 保存新闻内容 txt :param content: 新闻内容 :param title: 新闻标题 :return: """ path = '新闻\\' + title + '.txt' with open(path, mode='a', encoding='utf-8') as f: f.write(content) print('正在保存', title)
主函数
def main(url): """ 主函数 :param url: 新闻列表页 url地址 :return: """ html_data = get_html(url).text # 获得接口数据response.text lis = get_page_url(html_data) # 获得新闻url地址列表 for li in lis: page_data = get_html(li).content.decode('utf-8', 'ignore') # 新闻详情页 response.text selector = parsel.Selector(page_data) title = re.findall('(.*?) ', page_data, re.S)[0] # 获取新闻标题 new_title = file_name(title) new_data = selector.css('#cont_1_1_2 div.left_zw p::text').getall() content = ''.join(new_data) download(content, new_title)if __name__ == '__main__': for page in range(1, 101): url_1 = 'https://channel.chinanews.com/cns/cjs/gj.shtml?pager={}&pagenum=9&t=5_58'.format(page) main(url_1)
运行效果图
感谢各位的阅读,以上就是"怎么用Python制作一个每天新闻热点"的内容了,经过本文的学习后,相信大家对怎么用Python制作一个每天新闻热点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
新闻
内容
地址
数据
标题
接口
网页
热点
制作
详情
特殊
字符
源代码
学习
函数
就是
形式
思路
文件
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ps5生化危机8连接服务器失败
帝国时代3无法连接在线服务器
夏门凌耀网络技术有限公司
软件开发一般毕业后都干几年
苏州手机软件开发公司有哪些
新万佳网络技术公司
网络安全专业数学密码很烧脑
db2 数据库日志查看
网络技术与社会文明
病种数据库
mdf ldf恢复数据库
肇庆通讯软件开发厂家直销
的网络安全课程
代理服务器 app
甘肃电视台网络安全2020
数据库系统第五版课后习题答案
自己做的服务器如何用手机浏览
拓达网络技术qq
10年软件开发经验工资
全民网络安全素养
access数据库计算器怎么做
家庭网络安全形势分析
新万佳网络技术公司
广西菲格特网络技术有限公司
张永奎数据库原理与设计
平安互联网AI科技
数据库查询姓名为两个字的学生
软件开发上位机
征文网络安全伴我行
阿里云的免费服务器会收钱吗