python告诉你微博用户的粉丝数

1.前序

前两篇主要介绍了微博热搜和大v的推文发布,今天和大家分享一下怎么样才能抓取到微博大V的粉丝数量

2.数据采集

同理,我们要获取微博用户的粉丝数量,首先我们需要知道访问的接口。只要知道访问的接口,后面就简单了,只需要对采集到的数据,按需做一下数据分析即可。

def get_html_data(self, user_id):
    # 实际请求Url
    actual_url = "https://m.weibo.cn/api/container/getIndex?type=uid&value="+str(user_id)

    # 随机获取headers
    res = requests.get(actual_url, headers={'User-Agent': UA[random.randint(0, len(UA) - 1)]}).text
    print("抓取开始,实际请求Url:" + actual_url)
    return res

3.数据分析

当我们拿到数据后,我们需要找到我们想要知道的数据在哪里,如果是html就是要知道在哪标签里,json就是知道在哪个键值key中。

def run(self, *args):
    item = dict()
    res = self.get_html_data(args[0])
    if not res:
        print("抓取完成...")
        return self.post_list
    try:
        res_json = json.loads(res)
        # print(res_json)
        # 读取微博账号的粉丝数
item["followers"] = res_json["data"]["userInfo"]["followers_count"]

        # 微博用户名
        item["screen_name"] = res_json["data"]["userInfo"]["screen_name"]

        # 读取微博账号微博的Domain值
        for tab in res_json["data"]["tabsInfo"]["tabs"]:
            if tab["id"] == 2:
                item["domain"] = tab["containerid"][:6]
                break
        print(item)
    except Exception:
        print("抓取数据格式异常!!!")
        return self.post_list

4.最后

准备工作完成后,接下来就是验证。

image.png

胡歌,粉丝数量 71880957

image.png

王思聪,粉丝数量 41576828

weibo = Weibo()
# 早报网,新浪新闻,胡歌,王思聪
userid_list = [1654134123, 2028810631, 1223178222, 1826792401]
for user_id in userid_list:
    weibo.run(user_id)
image.png

很明显,代码执行的结果与实际数量是相符的。说明我们的解析的字段,我们的方法没错。

更多源码信息,请参考原文

你可能感兴趣的:(python告诉你微博用户的粉丝数)