Python入门(二)—— 网络爬虫抓取新闻

一个简单的python爬虫示例
Python入门(二)—— 网络爬虫抓取新闻
category
tags
type
slug
date
summary
status
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行。同样的方式我们还可以做更多事,例如获取天气、查询股票价格等等需要信息获取的需求。
上一篇
Python入门(一)—— 安装环境
下一篇
Yarn 使用入门
Loading...
2023-7-20
最新发布
博弈论教程系列(3) — 纳什均衡中的支配关系
2024-11-20
博弈论教程系列(1)— 博弈论入门之纯策略纳什均衡
2024-11-20
博弈论教程系列(2)— 零和博弈与混合策略纳什均衡
2024-11-20
十年一次的机遇,2024年A股牛市操作手册,如何让资产快速翻25倍?
2024-11-20
滚仓是什么策略?为什么交易大神们都在用?新手能学会滚仓吗?
2024-11-20
什么是正确的交易理念?《毛选》已经给了我们答案
2024-11-20