📅  最后修改于: 2023-12-03 15:04:34.846000             🧑  作者: Mango
NewsAPI是一个提供各种新闻资讯的API,它支持30多种语言,包括英语、中文、法语等,可获取全球各地的新闻。它提供的新闻来自众多的新闻提供商,如BBC、CNN、Reuters等,覆盖了全球各地的新闻,包括政治、经济、体育、科技、健康等各个领域。
使用Python中NewsAPI,我们可以:
在使用NewsAPI之前,需要安装相应的库:
pip install newsapi-python
使用NewsAPI需要先注册账号,可在官网上申请API key。获取API key之后,可以在代码中进行以下配置:
from newsapi import NewsApiClient
# 初始化NewsApiClient,将API key传入
newsapi = NewsApiClient(api_key='YOUR_API_KEY')
可以使用get_top_headlines()
方法获取最新新闻。传入的参数包括:
country
:国家代码,默认为'us'category
:新闻分类,默认为空sources
:新闻来源,默认为空pageSize
:每页新闻数量,默认为20page
:页码,默认为1# 获取最新的20条新闻
top_headlines = newsapi.get_top_headlines()
# 获取中国地区的最新新闻
top_headlines = newsapi.get_top_headlines(country='cn')
返回值是一个dict
类型,包含了新闻列表、总数量等信息,如下所示:
{
'status': 'ok',
'totalResults': 10,
'articles': [
{
'source': {
'id': 'cnn',
'name': 'CNN'
},
'author': 'Analysis by Stephen Collinson, CNN',
'title': 'Biden's gamble on Afghanistan hangs in the balance on 9/11 anniversary',
'description': "With 20 years of war in Afghanistan alone following the attacks of 9/11, Joe Biden has a chance to reflect on whether the US approach to the world since then has been effective, writes CNN's Stephen Collinson",
'url': 'https://www.cnn.com/2021/09/06/politics/joe-biden-afghanistan-911/index.html',
'urlToImage': 'https://cdn.cnn.com/cnnnext/dam/assets/210905182733-01-biden-afghanistan-0905-super-tease.jpg',
'publishedAt': '2021-09-06T22:24:54Z',
'content': "Washington (CNN)With the solemnity of the 20th anniversary of 9/11 approaching, President Joe Biden is spending the weekend reflecting on whether the US approach to the world since the terror attacks … [+4664 chars]"
},
# 其他新闻...
]
}
可以使用get_everything()
方法根据关键字搜索新闻。传入的参数包括:
q
:关键字sources
:新闻来源,默认为空domains
:新闻域名,默认为空from_param
:开始日期,默认为空to
:结束日期,默认为空language
:新闻语言,默认为空sortBy
:新闻排序规则,默认为'publishedAt'pageSize
:每页新闻数量,默认为20page
:页码,默认为1# 根据关键字搜索新闻
search_results = newsapi.get_everything(q='covid')
# 根据关键字和新闻来源搜索新闻
search_results = newsapi.get_everything(q='covid', sources='bbc-news')
# 根据日期范围搜索新闻
search_results = newsapi.get_everything(q='covid', from_param='2021-09-01', to='2021-09-06')
返回值与get_top_headlines()
相同。
可以使用get_article()
方法获取新闻的详细信息。传入的参数为新闻的URL。
# 获取新闻详细信息
article = newsapi.get_article(url='https://www.bbc.com/news/world-europe-58402823')
返回值是一个dict
类型,包含了新闻的标题、作者、内容等详细信息,如下所示:
{
'source': {'id': None, 'name': 'BBC News'},
'author': 'BBC News',
'title': 'Gabby Petito: Body found in Wyoming is missing woman, FBI says',
'description': 'Gabby Petito disappeared on a road trip with her fiancé. The FBI is investigating her death.',
'url': 'https://www.bbc.com/news/world-us-canada-58601161',
'urlToImage': 'https://ichef.bbci.co.uk/news/976/cpsprodpb/1017E/production/_120657027_05e9f9bb-7f8d-438d-82ba-90220e281a1d.jpg',
'publishedAt': '2021-09-20T14:48:21.3274964Z',
'content': "image captionGabby's mother Nicole Schmidt thanked the world for their support in a Facebook post on SundayA body found in the US state of Wyoming has been identified as Gabby Petito, a 22-year-old wo… [+4424 chars]"
}
以上就是Python中使用NewsAPI的介绍。NewsAPI提供了丰富的接口,可以获取最新的新闻、搜索新闻、获取新闻的详细信息等,开发者可以根据自己的需求进行调用。如果需要更详细的信息,可以查看官方文档:https://newsapi.org/docs/python-sdk