Post on: 2021-3-24Last edited: 2023-7-20Words 00 min

category
tags
type
status
slug
date
summary
icon
password

前言

某产品经理提出以下三个需求开发一个程序:
1. 每天自动从网上找到新闻
2. 自动整理新闻排版成一张图片
python有强大的网络爬虫能力,实现这样的功能还是很快的

准备工作

  • 确定新闻信息源
找一个提供新闻的网站,这里我用的是 https://www.pmtown.com/archives/category/早报  这个网站,每天会更新一篇新闻。
  • python安装依赖库
💡
requests : 用来访问请求网站 bs4 : 用来从网站标签中提取数据
  • 安装效果图
notion image
notion image

代码实现

用request库抓取网页上的文本信息

在easy.txt中写入这几行代码:
💡
import requests ;将requests库引入 from bs4 import BeautifulSoup ; 从 bs4 这个库中只引入BeatifulSoup这个对象 obj1 = requests.get('http://www.pmtown.com/archives/category/早报'); requests库的 get 方法请求网页,obj1是个临时变量 print(obj1.text) ; 打印请求到的网页内容
保存文本,并执行代码;
执行效果
notion image

分析页面元素中所需的内容

对着最新的一条新闻,右键点击检查,浏览器中会弹出相应的标签文本;
notion image
分析一下这部分网页的代码
1. 列表里是所有的新闻地址,按时间倒序排列,最新的在最上面;每天会有一条新的早报地址;
2. 他是一个 <a></a> 标签包裹的
3. 这个a标签中有一个class="list-title text-lg h-2x"
4. 路径在这段代码的href=""中 可以看到这条新闻的地址是 https://www.pmtown.com/archives/293994.html

编码实现查找页面元素

用以上的规律信息,我们可以定位到每天最新新闻的地址。代码如下:
💡
html_obj = BeautifulSoup(obj1.text) 用BeautifuSoup包装网页文本,便于解析查找数据的功能 url = html_obj.find('a',class_='list-title text-lg h-2x').get('href') 查找指定a标签,该a标签中有一个class值为'list-title text-lg h-2x',找到后,获取该a标签中的href字段 print(url) 找到了就打印出来看看
执行效果:
notion image
 
上一步,我们获取到了每天最新的新闻地址。接下来我们打开上面的地址详情页分析一下。
 
notion image
右键检查,分析网页代码规律:不难发现,这个代码的特点是:
1. 新闻信息和日期在<h1></h1>中包裹着
2. 新闻内容在<p></p>中包裹着
代码如下:
💡
obj2 = requests.get(url) url是上一步获取的最新新闻的网址 news_html = BeautifulSoup(obj2.text) 用BeautifulSoup对象包装一下请求到的网站文本 news_content = news_html.find('p') 查找<p>标签 print(news_content) 找到了就打出来看看
这段代码执行效果:将新闻信息提取出来,并打印在屏幕上。
notion image
 

总结

这里我们用到了python的request库以及BeautifulSoup库实现了网页信息的获取与查找。核心代码行数不超过20行。同样的方式我们还可以做更多事,例如获取天气、查询股票价格等等需要信息获取的需求。

Loading...
Python入门(一)—— 安装环境

Python入门(一)—— 安装环境

windows 安装Python开发环境


短视频技巧:制作高质量内容的七个关键指标

短视频技巧:制作高质量内容的七个关键指标

制作引人注目的短视频内容,成为社交媒体账号的佼佼者。本文介绍了七个关键指标,包括赢得点赞、引发评论、增加转发量、提高收藏量、追求播放量、快速增加粉丝以及突破圈层。


Announcement