Python 如何获取每日新闻
每日新闻是用来描述每天发布并关注全球事件和话题的新闻。每日新闻的使命是让读者保持信息更新和全球事件的最新动态。政治、体育、娱乐、科技等只是每日新闻涵盖的众多领域之一。
数据分析和网页开发领域都广泛使用编程语言Python。它可以用于制作一个程序,从多个来源获取新闻文章,并将它们编译成每日新闻摘要。可以使用Python的Requests和Beautiful Soup等包来实现这个功能。
注意 − 输出可能会随着每日新闻的更新而发生变化
Python获取每日新闻的算法
以下是使用Python获取每日新闻的一些算法方法。
步骤1 − 确定可信的新闻来源,在可靠的新闻网站上找到提供各种主题信息的值得信赖的新闻源,如政治、体育、娱乐、科技等。这可能包括著名的新闻机构如CNN、BBC和纽约时报,还可以包括更专门的、更小的期刊,专注于特定的地点或问题。
步骤2 − 在第二步中设置您的Python环境。为了使用Python来爬取新闻,您必须在您的计算机上设置一个Python环境。安装所需库的最新版本,包括Beautiful Soup和Requests,以及Python。
步骤3 − 编写抓取新闻文章的代码,编写使用Requests库的Python代码,向您确定的新闻来源的网站发送HTTP请求。使用Beautiful Soup解析HTML内容,并提取相关信息,如标题、文章内容、作者和发布日期。将这些信息与原始文章的URL一起存储在数据库或数据文件中。
步骤4 − 检查文章的文本,对每篇文章的文本分析应用自然语言处理工具,查找可能指向抄袭或改写的模式或相似之处。可以使用NLTK(自然语言工具包)等工具将每个项目的文本与其他抓取的文章进行比较。任何看起来是重新利用或抄袭的文章应该从每日新闻摘要中排除。
步骤5 − 制作当日新闻摘要,将已抓取的新闻文章整理成每日新闻摘要,其中应包括全球事件和话题。为确保摘要公正和有用,包括各种主题和观点。
步骤6 − 将每日新闻摘要公开,将每日新闻摘要发布在网上或社交媒体平台上。使用称为Beautiful Soup(bs4)的Python包从HTML和XML文件中提取数据。Python默认不包含此模块。在终端中输入以下命令以安装此模块。以便任何人都可以访问它。为了让读者能够获取更多的细节和背景,必须包含对源文章的引用。
您可以按照这些步骤使用Python获得每日新闻。
所需模块
安装Beautiful Soup(bs4)的命令
bs4 − Beautiful Soup(bs4)是一个用于从HTML和XML文件中提取数据的Python库。该模块不包含在Python中。要安装此模块,请在终端中输入以下命令。
pip install bs4
安装Request的命令
Request − Request使得发送HTTP/1.1请求无比简单。此外,默认情况下Python不包括该模块。在终端中输入以下命令来安装它。
pip install requests
使用Python获取每日新闻的方法
方法一
在这种方法中,我们首先导入模块 –
import requests
from bs4 import BeautifulSoup
在此之后,为了轻松获取任何特定新闻的每日新闻,我们将添加以下代码行HTML内容:https://www.bbc.com/news。
url='https://www.bbc.com/news'
response = requests.get(url)
访问 https://www.bbc.com/news,通过右键点击新闻标题并选择“检查”来发现新闻标题由哪些HTML标签组成−
作为起点,我们将“soup”定义为BBC新闻网站的HTML。下一步是将“headlines”定义为网站上所有“h3>”标签的数组。最后,使用“text.strip()”方法去除每个元素的outerHTML并仅显示其文本内容,脚本通过迭代遍历“headlines”数组并按顺序显示每个项。
第一种方法实现的代码
import requests
from bs4 import BeautifulSoup
url = 'https://www.bbc.com/news'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
headlines = soup.find('body').find_all('h3')
for x in headlines:
print(x.text.strip())
第一种方法的输出
方法二
由于你可能看到你的输出包含重复的新闻标题和不是新闻标题的文本内容,在这种技术中,我们将从每日新闻数据中删除不需要的数据。
语法
unwanted = ['BBC World News TV', 'BBC World Service Radio', 'News daily newsletter', 'Mobile app', 'Get in touch']
只有当文本元素不在列表中时,才将其打印出来,通過放置-
第二种方法的代码实现
import requests
from bs4 import BeautifulSoup
url = 'https://www.bbc.com/news'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
headlines = soup.find('body').find_all('h3')
unwanted = ['BBC World News TV', 'BBC World Service Radio', 'News daily newsletter', 'Mobile app', 'Get in touch']
for x in headlines:
headline_text = x.text.strip()
if headline_text not in unwanted:
print(headline_text)
第二种方法的输出
结论
Python程序员可以使用网络爬虫方法和新闻机构的API获取当天的新闻。但是,网络爬虫必须遵守被抓取网站的条款和条件,并且不应对其服务器进行过多的查询。利用网络爬虫技术从网站中收集新闻文章是另一种策略。开发人员可以使用Python的BeautifulSoup包解析HTML和XML文档来实现这一点。然而,重要的是要了解网站的条款和条件,并避免给其系统造成过大压力。