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

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

目录

一、需求说明

二、程序设计

三、从指定网站获取新闻

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

2. 库的安装

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

4. 查找最新新闻的链接

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


一、需求说明

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

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

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

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

二、程序设计

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

三、从指定网站获取新闻

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

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

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

2. 库的安装

这里我们将用到两个库:

requests :用来访问请求网站

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

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

pip install requestspip 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. 他是一个 <a></a> 标签包裹的

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

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

<a
href="https://www.pmtown.com/archives/293994.html"
target="_blank" title="泡面早报|360将推出10万元左右的智能汽车、微信上线购物号功能主打人人都能带货、腾讯推出免费看片神器片多多还能边看边赚钱"
class="list-title text-lg h-2x"
one-link-mark="yes">
泡面早报|360将推出10万元左右的智能汽车、微信上线购物号功能主打人人都能带货、腾讯推出免费看片神器片多多还能边看边赚钱
</a>

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

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. <h1></h1>中包裹着日期

2. <p></p>中包裹着新闻内容

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

直接上代码:

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')  查找<p>标签
  • print(news_content) 找到了就打出来看看

执行效果:你成功了吗?

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

从零开始开发Python程序(四)—— 抓取每日早报新闻相关推荐

  1. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的sele ...

  2. C++调用python,并抓取每日一句名言

    作者:非妃是公主 专栏:<笔记><C++> <python学习> 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 前言 C++执行python ...

  3. 003.[python学习] 简单抓取豆瓣网电影信息程序

    003.[python学习] 简单抓取豆瓣网电影信息程序 声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和 ...

  4. 推荐 :手把手教你用Python进行Web抓取(附代码)

    作者:Kerry Parker :翻译:田晓宁:校对:丁楠雅: 本文约2900字,建议阅读10分钟. 本教程以在Fast Track上收集百强公司的数据为例,教你抓取网页信息. 作为一名数据科学家,我 ...

  5. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  6. 独家 | 手把手教你用Python进行Web抓取(附代码)

    作者:Kerry Parker 翻译:田晓宁 校对:丁楠雅 本文约2900字,建议阅读10分钟. 本教程以在Fast Track上收集百强公司的数据为例,教你抓取网页信息. 作为一名数据科学家,我在工 ...

  7. 使用 Python 进行网页抓取

    如果您知道如何做到这一点,那么对于企业和个人使用来说,网络抓取似乎是一种非常有用的节省时间的工具.我们将重点介绍为什么您应该使用 Python 进行网页抓取,并为您提供有关如何完成它的快速教程,包括使 ...

  8. scrapy 使用浏览器的开发人员工具进行抓取

    使用浏览器的开发人员工具进行抓取 下面是关于如何使用浏览器的开发人员工具来简化抓取过程的一般指南.现在几乎所有浏览器都内置了 Developer Tools 尽管我们将在本指南中使用firefox,但 ...

  9. python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

最新文章

  1. 中国·北京创新创业大赛季(2020)参赛企业注册报名操作指南
  2. 赠书 | Python 预测股票价格,竟然这么简单
  3. 如何查询电脑的文件系统的分类是哪一种?
  4. 片源系统服务器,OUO NAS10主控界面评测
  5. python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解
  6. BMP图片读写接口函数
  7. Blas SGEMM launch failed
  8. mysql多数据库_mysql 多端口及主从数据库
  9. 好书推荐!从事数据挖掘、数据分析必看的书!
  10. PHP编写时的灵活性
  11. 【直播预告】相机模型与标定——Real world超级公开课
  12. 该网页无法正常运作 目前无法处理此请求。 HTTP ERROR 500
  13. 学法减分拍照识题小程序开发
  14. 非线性方程(组):计算基本理论
  15. 【Python2】使用python中的turtle模块学习海龟绘图(有趣的python初体验)(最全最详细的turtle介绍使用)
  16. 理解《Charting the Right Manifold: Manifold Mixup for Few-shot Learning》
  17. 安川机器人报错_安川机器人报错代码:报警历史和I/O 信息历史
  18. PEMFC和燃料电池电动汽车的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. java 23_《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(三)
  20. 五大软文写作技巧让你的企业软文“一夜走红”

热门文章

  1. 欣瑞达TFT串口屏开发资料
  2. linux黑体加粗有什么区别,宋体没有加粗、或加粗变黑体了
  3. 芯片行业是不是过热了
  4. debian e42 wifi
  5. 2017哈工大计算机考研分数线,哈尔滨工业大学2017年考研分数线
  6. 打造低碳环保的XP系统
  7. 安装Ubuntu15.10和编译RT补丁
  8. 显示器点距 测试软件,点距问题困扰很多用户_液晶显示器新闻-中关村在线
  9. 算法与数据结构+一点点ACM从入门到进阶吐血整理推荐书单
  10. three.js 报错信息 RGBELoader.js:46 RGBELoader Bad File Format: bad initial token