爬取微博评论时找不到https://m.weibo.cn/api/comments/show?id=

想爬取微博的评论,看了很多代码都是要用到这个链接,可是为什么找不到show?id这条,而是https://m.weibo.cn/comments/hotflow?id=这条呢,有没有大佬帮忙解疑一下

虽然数据不再是通过接口的方法返回的,但是老接口还能用https://m.weibo.cn/api/comments/show?id={id}&page={page} , 这里的id是某条微博的id, page 是分页参数。

新接口,https://m.weibo.cn/comments/hotflow?mid=4477013081328252&max_id=330569188932643&max_id_type=0

这个接口也能拿到评论,mid 是某条微博的参数, max_id 是分页参数,这个参数可以从一个请求返回的数据中拿到

 

""" 
爬取微博评论,保存到数据库 
 
https://m.weibo.cn/api/comments/show?id=4477013081328252&page=50 
该接口能获取微博的前50页数据,每页10条, id 是某条微博的id 
 
https://m.weibo.cn/comments/hotflow?mid=4477013081328252&max_id=330569188932643&max_id_type=0 
此接口能爬到所有评论信息, mid 是某条微博id, max_id 是上一个请求返回的分页参数, max_id_type 固定为0就好 
""" 
 
from pymongo import MongoClient 
import requests 
import time 
 
__author__ = 'liuzhijun' 
 
headers = { 
    "Host": "m.weibo.cn", 
    "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) " 
                  "Version/9.0 Mobile/13B143 Safari/601.1", 
    "Cookie": "xxxxx" # 这里将浏览器的cookie复制过来进行了。 
} 
 
client = MongoClient('mongodb://localhost:27017/') 
db = client['weibo'] 
 
def main(mid, max_id): 
    """ 
    :param mid: 某条微博id 
    :param max_id: 分页参数 
    :return: 
    """ 
    url = "https://m.weibo.cn/comments/hotflow?max_id_type=0" 
    params = {"mid": mid} 
    if max_id: 
        params['max_id'] = max_id 
 
    res = requests.get(url, params=params, headers=headers) 
    print(res.content) 
    result = res.json() 
    max_id = result.get("data").get("max_id") 
    data = result.get('data').get('data') 
    for item in data: 
        db['comment'].insert_one(item) 
 
    if max_id: 
        time.sleep(1) 
        main(mid, max_id) 
 
if __name__ == '__main__': 
    main("4477013081328252", None)