有时候想要查询最新的热点新闻,或者是希望后端自动获取热点新闻显示在网页上增加内容,那么应该怎么弄呢?今天记录一下用Python来调用API获取热点新闻的教程,希望对你有所帮助~~~
正文开始
首先访问天行数据官网(https://www.tianapi.com/)来申请一个API接口~~~
为什么用天行数据的呢?
经过许多查询,我发现天行数据可提供的接口类型较多,(具体大家可以自己探索,这里不再过多赘述),并且提供免费的调用次数,还是比较实惠的,操作也方便,大家也可以用其他的服务商,操作大同小异~~~

天行数据官网

各种接口类型
我们先注册一个账号,然后完成实名认证(也可以过一段时间再认证)


回到首页选择“新闻资讯”,我们用今日头条新闻为例:

申请一个接口
我们先看看它的帮助文档:
接口信息
接口地址:http://api.tianapi.com/topnews/index
请求示例:http://api.tianapi.com/topnews/index?key=APIKEY
支持协议:HTTP/HTTPS
请求方式:GET/POST
返回格式:UTF8 JSON
请求参数
post请求时,enctype应为application/x-www-form-urlencoded
请求参数中有url或特殊字符时,应该对值urlencode编码下
名称 类型 必填 示例值/默认值 说明
key string 是 您自己的APIKEY(注册账号后获得) API密钥
num int 否 10 返回数量1-50,默认10
page int 否 1 翻页
word string 否 上海 搜索关键词
src string 否 人民日报 指定来源
返回参数
名称 类型 示例值 说明
ctime string 2019-07-07 16:40:29 发布时间
title string 大三女生穿破洞牛仔裤外出,外婆拉着手不让出门 新闻标题
description string 近日,四川省苍溪县,大三学生陶青梅放暑假待在家中...... 新闻描述
picUrl string http://p9-tt.byteimg.com/list/pgc-image/7c4efd211ee84a4ca0a2fca99d2e9b95 封面图片
source string 重庆青年报 新闻来源
接口价格
用户等级 免费接口数 每日赠送次数 会员价格 说明
免费会员 15个 100次 免费 每个免费接口每天赠送100次
高级会员 15个 1万次 20元/月、120元/年 每个免费接口每天赠送1W次
黄金会员 不限 50万 65元/月、390元/年(限时特价) 每个免费接口每天赠送50W次
提示:系统优先使用赠送额度,超出后每次调用消耗1颗天豆(0.0001元),如项目有更高需求请点此升级会员等级。
这个接口每天有100次的免费调用次数,超过了这个次数需要消耗天豆(注册账号赠送1000颗),有更高需求可以开会员,不想开会员的可以用邮箱多刷账号
点击“在线测试”

可以看到我们接口的KEY

解释一下参数的用法:
http://api.tianapi.com/topnews/index 这是接口地址
填入自己的key来调用接口 例:http://api.tianapi.com/topnews/index?key=自己的密钥
设定num值设定接口返回的文章数量 例:http://api.tianapi.com/topnews/index?num=50 会返回50篇文章
设定word值设定文章搜索的关键词 例:http://api.tianapi.com/topnews/index?word=迷迭香 会返回与迷迭香有关的文章
设定src值设定文章的来源 例:http://api.tianapi.com/topnews/index?src=人民日报 会返回人民日报发表的文章
链接示例http://api.tianapi.com/topnews/index?key=555555555555555555&word=迷迭香&num=5
返回5篇与迷迭香有关的文章
参数并列使用用分隔符&
顺便说一句,天行数据里提供的代码范例适用于Python的2.7版本,众所周知这是个另类,现在大多用3打头的版本的Python了,所以我们要另写代码
首先,运行cmd,用pip安装requests包
pip install requests

我就在Visual Studio Code里示例
然后新建文件,输入代码:
# -*- coding: UTF-8 -*-
import requests //导入requests包
rs=requests.get("http://api.tianapi.com/topnews/index?key=你的key") //从接口地址调用数据
content=rs.json()['newslist'] //将返回的信息储存在neslist这个表内
print(content) //打印表
查看输出

我们看到,输出已经返回给我们了,但整个表非常乱,返回的数据既有日期,开头,图片,也有文章链接等值,不利于我们后期数据的处理
所以我们整理一下表
//加入以下代码
for i in content: //循环以整理所有返回的数据
print("开头:{}\n图片地址:{}\n新闻地址:{}\n".format(i['title'],i['picUrl'],i['url'])) //依次打印值
//完整代码
# -*- coding: UTF-8 -*-
import requests
rs=requests.get("http://api.tianapi.com/topnews/index?key=你的key")
content=rs.json()['newslist']
for i in content:
print("开头:{}\n图片地址:{}\n新闻地址:{}\n".format(i['title'],i['picUrl'],i['url']))
查看效果

整理后看起来非常整洁,可以对返回的数据进行处理了~~~
可以对值进行分析,分别处理数据~~~~
注意记得json值的转换
大致的教程就是这样,别的接口也大同小异,用API来丰富你的网站页面吧!

就先这样了,睡觉先
文章评论