从零开始开发Python程序(四)

您所在的位置:网站首页 新闻今日最新的一条内容 从零开始开发Python程序(四)

从零开始开发Python程序(四)

2024-07-10 05:28| 来源: 网络整理| 查看: 265

这是一片系列文章,最好先看看上一篇 

从零开始开发Python程序(三)—— 用文本编辑器来写代码

目录

一、需求说明

二、程序设计

三、从指定网站获取新闻

1.找一个提供新闻的网站

2. 库的安装

3. 访问网站,获取页面数据

4. 查找最新新闻的链接

5. 抓取网页中的新闻文字

 

一、需求说明

关注时事新闻,是发财的第一步。某产品经理提出以下三个需求开发一个程序:

1. 每天自动从网上找到新闻

2. 自动整理新闻排版成一张图片

我想,这不就是我们群里辉哥每天的工作吗,辉哥太辛苦了,我要写一个这样的程序为他减轻负担~!

二、程序设计

功能示意图如下;直接开始需求的第一个步骤,从网站上采集新闻信息

 

 

三、从指定网站获取新闻 1.找一个提供新闻的网站

这里用的是 https://www.pmtown.com/archives/category/早报 (随便找的、不是广告引流)

网页是用Html标签写的,我们首先要用代码访问这个新闻网站,获取每天最新早报的网址;

2. 库的安装

这里我们将用到两个库:

 requests :用来访问请求网站

 bs4 : 用来从网站标签中提取数据

先后执行以下代码安装库,速度飞快~

pip install requests pip install bs4

安装效果

3. 访问网站,获取页面数据

 在easy.txt中写入这几行代码:

import requests from bs4 import BeautifulSoup obj1 = requests.get('http://www.pmtown.com/archives/category/早报') print(obj1.text)

总共就5行代码,我稍微解释一下:

import requests ;将requests库引入from bs4 import BeautifulSoup ; 从 bs4 这个库中只引入BeatifulSoup这个对象obj1 = requests.get('http://www.pmtown.com/archives/category/早报');  用requests库的get方法请求网页,obj1是个临时变量print(obj1.text) ; 打印请求到的网页内容

保存文本,并执行代码;

python easy.txt

成功的话,会像我一样,控制台上打印出一堆html标签。恭喜你!已经掌握了如何用python程序获取网页数据啦,接下来就是为所欲为的时刻。 

4. 查找最新新闻的链接

对着最新的一条新闻,右键点击检查,浏览器中会弹出这个链接的代码;可以看到这条新闻的地址是 https://www.pmtown.com/archives/293994.html;

分析一下这部分网页的代码

1. 列表里是所有的新闻地址,按时间倒序排列,最新的在最上面;每天会有一条新的早报地址;

2. 他是一个 标签包裹的

3. 这个a标签中有一个class="list-title text-lg h-2x"

4. 路径在这段代码的href=""中

泡面早报|360将推出10万元左右的智能汽车、微信上线购物号功能主打人人都能带货、腾讯推出免费看片神器片多多还能边看边赚钱

 我们可以用这段代码访问这个网站,并查找到当天最新一条新闻的网址;

html_obj = BeautifulSoup(obj1.text) url = html_obj.find('a',class_='list-title text-lg h-2x').get('href') print(url)

代码简单得只有三行,但我还是解释一下

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) 找到了就打印出来看看

执行效果:你成功了吗,恭喜你,学会了如何从网站中抓取你想要的数据。

5. 抓取网页中的新闻文字

打开上一步的新闻网址 ,右键检查,分析网页代码规律:

不难发现,这个代码的特点:

1. 中包裹着日期

2.

中包裹着新闻内容

泡面早班车#2021年5月12日 星期三

【泡面头条】 1、滴滴出行旗下共享单车品牌青桔发布名为青桔X的概念车 滴滴旗下共享单车品牌青桔发布两轮概念电单车——青桔X。这款车采用了半封闭式的造型,前后灯使用到贯穿式大灯。在安全方面,它配备了汽车级毫米波雷达,可实现ADAS碰撞预警。同时,它支持开机健康自检,支持人脸、指纹识别、APP端健康提醒。它将搭载长续航高密度锂电池,支持无线快充。在智能互联方面,包括语音交互、车载导航等。据了解,滴滴方面希望,在5年后实现青桔X上路行驶。 ....省略

直接上代码:

obj2 = requests.get(url) news_html = BeautifulSoup(obj2.text,) news_content = news_html.find('p') print(news_content)

代码只有四行,很简短,我解释一下:

obj2 = requests.get(url) url是上一步获取的最新新闻的网址news_html = BeautifulSoup(obj2.text,) 用BeautifulSoup对象包装一下请求到的网站文本news_content = news_html.find('p')  查找

标签print(news_content) 找到了就打出来看看

执行效果:你成功了吗?

总共25行代码就搞定了这个功能,接下会教你如何将早报排班成图片 从零开始开发Python程序(五)—— 把文字排版成一张图片



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3