微博动态api
最开始的需求就是提取微博某条动态里的图片,然后发现的api
地址如下
https://weibo.com/ajax/statuses/show?id=该条动态的id
动态的ID
因为微博现在动态没有展开详情页的按钮了,那么怎么知道动态的id参数是什么呢,其实很简单,随便点开个图片如下图,其中layerid后面的数字就是id了
获取
然后访问https://weibo.com/ajax/statuses/show?id=4796965147381914
就可以获取了,里面包含了博主的一些信息,以及这条动态的文本内容图片内容。
不过在实际使用时最好自己用php中转下,避免跨域问题,导致不能直接请求。php代码如下:
<?php
header('Content-type:text/json');
header('Access-Control-Allow-Origin:*'); // *代表允许任何网址请求
header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); // 允许请求的类型
header('Access-Control-Allow-Credentials: true'); // 设置是否允许发送 cookies
header('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin');
if(isset($_GET['id'])){
$geturl = 'https://weibo.com/ajax/statuses/show?id='.$_GET['id'];
$headers =file_get_contents($geturl);
echo $headers;
}
?>
然后访问这个php文件,如https:xxxx.com/weibo.php?id=动态id
即可,代码还有优化的空间,比如缓存每次请求的结果,下次请求时直接调用缓存等。
最后
我们获取到图片链接后,直接在网站上使用可能存在无法显示的问题,因为微博加了防盗链,可以将图片域名的前缀缓存tva2,比如https://wx4.sinaimg.cn/orj960/be9135aely1h4p0xbwp4gj2222333kjn.jpg
换成https://tva2.sinaimg.cn/orj960/be9135aely1h4p0xbwp4gj2222333kjn.jpg
就可以了。
或者极端点直接给网页加上<meta name="referrer" content="never">
也可以,不过一般不建议这样做,可能会导致网站一些功能出现问题。
声明:本文由泽泽社投稿至cmy.cn,转载请注明出处,侵权必究!