python爬虫实战(1)--爬取新闻数据
想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。
1. 准备工作
使用python语言可以快速实现,调用BeautifulSoup包里面的方法
安装BeautifulSoup
pip install BeautifulSoup
完成以后引入项目
2. 开发
定义请求头,方便把请求包装成正常的用户请求,防止被拒绝
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
}
定义被抓取的url,并请求加上请求头
response = requests.get(url=url, headers=headers)
BeautifulSoup解析
soup = BeautifulSoup(response.text, "html.parser")
分析网站需要提取数据的标签
因为获取的对象是li标签的第一个,即
divs = soup.find(class_="js-item item")
这样默认就是第一个,如果需要获取全部,则需要find_all,遍历集合
防止获取到的新闻是当天的做一个日期判断
a = first_div.find(class_="title")if a.getText().__contains__(datetime.date.today().strftime("%#m月%#d日")):
日期存在title里面所以为了判断单独取一下信息
然后要取到最新日期的新闻自己的url,并get请求这个url

b = a.get('href')response = requests.get(url=b, headers=headers)soup = BeautifulSoup(response.text, "html.parser")
打开新的网址后分析网站标签信息

取这个标签,获取到p标签的值
body = soup.find(class_="post_body")p = body.find_all('p')
获取到的是个数组,去掉第一个元素,从第二个开始即是我们需要的结果
p_id_tag = p[1].__str__()
输出的信息带有元素标记,使用正则处理一下
raw_text = re.findall(r'<p[^>]*>(.*?)</p>', p_id_tag).__str__()# 去掉 HTML 标签并换行显示clean_text = raw_text.replace('<br/>', '\n').replace('<p>', '').replace('</p>', '').replace("']","").replace("['", "").replace(r"\u200b", "")
然后把抓取的信息写入txt
file = open("C:\\Users\\Administrator\\Desktop\\每日新闻" + '.txt','w', encoding='utf-8')file.write(clean_text)file.close()
最后使用定时任务每天定时抓取,这样就可以每天更新了
schedule.every().day.at("08:00").do(getNews)while True:schedule.run_pending()time.sleep(1)
运行效果

相关文章:
python爬虫实战(1)--爬取新闻数据
想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。 1. 准备工作 使用python语言可以快速实现,调用BeautifulSoup包里面的方法 安装BeautifulSoup pip install BeautifulSoup完成以后引入项目 2. 开发 定义请求头…...
React Hooks 详细使用介绍
useState 状态管理 useState 是 React 中的一个基础 Hook,允许你在不使用 class 组件的情况下管理组件状态。 参数 初始值 你可以直接传递状态的初始值给 useState: const [name, setName] useState("John");使用函数设置初始值 当初始…...
python版《羊了个羊》游戏开发第一天
Python小型项目实战教学课《羊了个羊》 一、项目开发大纲(初级) 版本1.0:基本开发 课次 内容 技术 第一天 基本游戏地图数据 面向过程 第二天 鼠标点击和移动 面向对象 第三天 消除 设计模式:单例模式 第四天 完整…...
【uniapp】原生子窗体subNvue的使用与踩坑
需求 最近接到个需求, 需要在video组件上弹出弹窗, 也就是覆盖video这个原生组件 未播放时, 弹窗可以覆盖, 但是当video播放时, 写的弹窗就覆盖不了了 因为video是原生组件, 层级非常高, 普通标签是覆盖不了的, map标签同理 覆盖原生组件, 官方给出解决办法一. 使用cover-view…...
浅析 C 语言的共用体、枚举和位域
前言 最近在尝试阅读一些系统库的源码,但是其中存在很多让我感到既熟悉又陌生的语法。经过资料查阅,发现是 C 语言中的共用体和位域。于是,趁着课本还没有扔掉,将一些相关的知识点记录在本文。 文章目录 前言共用体 (union)枚举…...
TartanVO: A Generalizable Learning-based VO 论文阅读
论文信息 题目:TartanVO: A Generalizable Learning-based VO 作者:Wenshan Wang, Yaoyu Hu 来源:ICRL 时间:2021 代码地址:https://github.com/castacks/tartanvo Abstract 我们提出了第一个基于学习的视觉里程计&…...
单例模式-java实现
介绍 单例模式的意图:保证某个类在系统中有且仅有一个实例。 我们可以看到下面的类图:一般的单例的实现,是属性中保持着一个自己的私有静态实例引用,还有一个私有的构造方法,然后再开放一个静态的获取实例的方法给外界…...
篇八:装饰器模式:动态增加功能
篇八:“装饰器模式:动态增加功能” 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式的资料,…...
算法通关村第五关——n数之和问题解析
1. 两数之和问题 力扣第1题就是两数之和问题,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一…...
小白到运维工程师自学之路 第七十集 (Kubernetes集群部署)
一、概述 Kubernetes(简称K8S)是一个开源的容器编排和管理平台,是由Google发起并捐赠给Cloud Native Computing Foundation(CNCF)管理的项目。它的目标是简化容器化应用的部署、扩展、管理和自动化操作。 以下是Kube…...
docker 部署mysql 5.6集群
docker搭建mysql的集群(一主双从) 1.拉取镜像 docker pull mysql:5.6 2.启动master容器 docker run -it -d --name mysql_master -p 3306:3306 --ip 192.168.162.100 \ -v /data/mysql_master/mysql:/var/lib/mysql \ -v /data/mysql_master/conf.d…...
mysql基本信息查询
1.查看mysql表的数据量 select table_schema as 数据库, table_name as 表名, table_rows as 记录数, truncate(data_length/1024/1024, 2) as 数据容量(MB), truncate(index_length/1024/1024, 2) as 索引容量(MB) from information_schema.tables order by data_length des…...
C语言初学者必读:使用for循环将数字从大到小排序并输出
在学习C语言编程的过程中,了解数组的输入和排序是非常基础且重要的一部分。本文将以通俗易懂的方式,教你如何使用for循环实现将输入的n个数字按照从大到小的顺序输出,帮助你逐步掌握数组的使用和排序算法。 第一步:获取用户输入 …...
【Vue+Element-plus】记录后台首页多echart图静态页面
一、页面效果 二、完整代码 Index.vue <template><div><div><DateTime /><!-- {{username}} --></div><el-row :gutter"20"><el-col :span"8"><div class"grid-content bg-purple"><P…...
BM5 合并k个已排序的链表 javascript
描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围: 示例1 输入: [{1,2,3},{4,5,6,7}] 返回值: {1,2,3,4,5,6,7}示例2 输入: [{1,2},{1,4,5},{6}] 返回值: {1,1,2,4,5,6}解题思路 利用两个…...
1.利用matlab建立符号表达式(matlab程序)
1.简述 、 1. 使用sym命令创建符号变量和表达式 语法: sym(‘变量’,参数) %把变量定义为符号对象 说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’, ’positive’ 表示为“正、实”符…...
LVS工作环境配置
一、LVS-DR工作模式配置 模拟环境如下: 1台客户机 1台LVS负载调度器 2台web服务器 1、环境部署 (1)LVS负载调度器 yum install -y ipvsadm # 在LVS负载调度器上进行环境安装 ifconfig ens33:200 192.168.134.200/24 # 配置LVS的VIP…...
金蝶,「起舞」在大模型时代
在过去的几年时间里,基于EBC的平台能力,金蝶已经走出了一个新的进化之路,这条路是对自身产品竞争力的重新构建,也更是对企业数字化转型需求的更大程度满足。 如今,苍穹GPT大模型更是让这种竞争力和服务力更向前一步。…...
解决Vs Code工具开发时 保存React文件时出现乱码情况
Vs Code工具开发时 保存React文件时出现乱码情况 插件库搜索:JS-CSS-HTML Formatter 把这个插件禁用或者卸载就解决保存时出现乱码的问题了; 如果没有解决,再看下面方案! 出现乱码问题通常是因为文件的编码格式不正确。您可以尝试以下解决方法: 确认文件编码格式&a…...
Fastjson 使用指南
文章目录 Fastjson 使用指南0 简要说明为什么要用JSON?用JSON的好处是什么?为什么要用JSON?JSON好处 1 常用数据类型的JSON格式值的范围 2 快速上手2.1 依赖2.2 实体类2.3 测试类 3 常见用法3.1 序列化操作核心操作对象转换为JSON串list转换J…...
保姆级图解:ARM CHI协议里的Credit机制,到底是怎么防止芯片“堵车”的?
ARM CHI协议中的Credit机制:芯片互连的智能交通控制系统 想象一下早高峰时段的城市交通——如果没有红绿灯和匝道流量控制,整个道路系统将在几分钟内陷入瘫痪。类似地,在现代多核处理器和芯片间互连架构中,Credit机制正是扮演着这…...
JD-GUI:3分钟掌握Java反编译的终极免费工具
JD-GUI:3分钟掌握Java反编译的终极免费工具 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui 你是否曾经面对一个没有源码的Java程序感到无从下手?或者需要快速理解第三方库的内部…...
在快马平台快速搭建transformer文本分类原型,验证注意力机制
在深度学习领域,transformer架构已经成为自然语言处理(NLP)任务的核心工具。最近我在尝试搭建一个基于transformer的文本分类模型原型,用来验证注意力机制的效果。整个过程比想象中顺利得多,尤其是在InsCode(快马)平台…...
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南 1. 为什么选择云端镜像而非本地部署 去年冬天,当我第一次尝试在本地MacBook Pro上部署OpenClaw时,整整浪费了两个周末的时间。Node版本冲突、Python依赖缺失、CUDA驱动不兼容——这些看似简单…...
一骑红尘妃子笑,CodeBuddy 运荔枝
一骑红尘妃子笑,CodeBuddy 运荔枝故事背景:适逢荔枝盛产季节,圣人(唐玄宗)为博美人(杨贵妃)一笑,钦点"荔枝使",负责将荔枝从"岭南"(今广…...
手把手教你用HuggingFace+BGE模型搭建本地向量检索系统(附FAISS实战代码)
从零构建基于BGE模型的本地语义搜索系统:代码级实践指南 在信息爆炸的时代,如何快速从海量文本中精准找到相关内容?语义搜索技术正成为解决这一痛点的利器。不同于传统的关键词匹配,语义搜索能理解查询背后的意图,找到…...
Planetscale:免费云数据库的快速入门与实战指南
1. Planetscale是什么?为什么开发者都在用? 第一次听说Planetscale时,我也和大多数开发者一样好奇:这个号称"开发者友好"的云数据库到底有什么特别?用了半年后终于明白,它就像是数据库界的GitHub…...
Qwen3.5-9B保姆级教程:从Conda环境到Gradio WebUI完整部署
Qwen3.5-9B保姆级教程:从Conda环境到Gradio WebUI完整部署 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。该模型特别之处在于支持多模态理解(图文输入)和超长上下文…...
别再用if-else了!用状态机重构你的51单片机红外循迹小车代码(思路+代码对比)
用状态机重构51单片机红外循迹小车:告别if-else的工程化实践 当你的红外循迹小车代码开始变得像意大利面条一样混乱时,是时候考虑一种更优雅的解决方案了。想象一下,每次需要新增一个传感器或者修改转向逻辑时,都要在几十个if-els…...
如何快速实现手机号码定位查询:3步掌握号码地理位置追踪技术
如何快速实现手机号码定位查询:3步掌握号码地理位置追踪技术 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/g…...
