科技微讯

爬取微博的 API

下面这条 url 可以获取指定用户最近发布的微博,count 指定获取多少条微博,uid 就是用户 id。

const api = `https://weibo.com/ajax/statuses/mymblog?uid=${uid}&count=${count}&page=${page}`;

不过大家都建议爬移动端 m.weibo.cn。获取某位用户最新的微博:

const count = 5;
const page = 1;
const uid = "2106855375";
const url = `https://m.weibo.cn/api/container/getIndex?uid=${uid}&t=0&luicode=10000011&containerid=107603${uid}&page=${page}&count=${count}`;
//https://m.weibo.cn/api/container/getIndex?uid=1729382834&t=0&luicode=10000011&containerid=1076031729382834&page=1&count=5

其中 107603 是特殊的数字,如果换成 100505 可以只获取这位用户的 userinfo,例如:

const uid = "2106855375";
const url = `https://m.weibo.cn/api/container/getIndex?containerid=100505${uid}`;

有人分享了这个 api 的限制

限制还是有的,如果不登陆直接请求,短时间会出现 403,加上 Cookies 会解决 403 问题,小规模单机单 job 爬取没问题,如果增加 job 数,每秒达到约 10 次左右会出现 414,此时需要切换代理解决。

获取用户最新微博的 API 返回的关键字段:

thumbsup0
thumbsdown0
暂无评论