新浪新闻API

新浪新闻API

96 
ustcmio 
2017.01.15 20:44* 字数 536 阅读 2479评论 2

新浪新闻的API:
1.访问手机新浪网https://sina.cn/?from=sinacom(可以从新浪新闻的首页链接进入)
2.选择国内新闻,分析网页源代码,发现有个动态加载更多新闻的api
http://interface.sina.cn/wap_api/layout_col.d.json?&showcid=56261
访问之,发现返回json格式的新闻,但并不是当前页面的内容,即缺少参数
3、进一步分析网页,发现channel.min.js文件进行动态加载
使用我几乎没有的js知识,意会了一下源码:
(1)搜索了load_api,发现了channel.mim.js中的
W.loadMoreApplyURL=scope.load_api,W.page=2,W.show_num=scope.show_num,...
(2)搜索了loadMoreApplyURL,发现了
if(W.iscolumn){
var e=W.loadMoreApplyURL,t=W.page,n=W.show_num;
if($(".star_nav").length>0)
var o=$(".star_nav").data("type"),d=$("#j_"+o+"list").data("cid"),c=$("#j"+o+"_list").data("level");
else
var d=$("#j_items_list").find(".j_itemscard").last().data("cid"),c=$("#j_items_list").find(".j_itemscard").last().data("level");
var l={col:d,level:c,show_num:W.show_num,page:W.page,act:"more",jsoncallback:"callbackFunction"}}
else...

大概理解了一下:
变量o设置了type的值,变量d设置了cid的值,变量c设置了level的值
然后再变量l中为jsoncallback函数callbackFunction传递参数:
col:d,即cid,
level:c,即level的值,
show_num:W.show_num,即每页显示,
page:W.page,即页码
act:"more",表示更多

由此可以得到新浪新闻api:
接口:http://interface.sina.cn/wap_api/layout_col.d.json?&showcid=56261
参数:
col表示新闻类别
国内:56261
国际:56262
社会:56264
历史:97223
level表示新闻等级
show_num表示新闻条数
page表示页码

地方资讯:56327是无锡

http://interface.sina.cn/dfz/outside/wap/news/list.d.html?col=56327

娱乐频道:
https://interface.sina.cn/ent/feed.d.json?ch=ent&col=ent&act=more&t=1484477669001&show_num=10&page=4
参数说明:
ch:频道
娱乐:ent
体育:sports
科技:tech
教育:edu
健康:health
时尚:fashion
博客:blog
col:分类
show_num
page

原文地址:https://www.cnblogs.com/yinhao-jack/p/10512199.html