-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathbase.py
75 lines (51 loc) · 1.64 KB
/
base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import requests as r
from constants import HEADERS, URL_relation_stat_json
from utils import respon2dict
class BaseUpLoader:
def __init__(self):
self._mid = -1
self._following = -1
self._follower = -1
@property
def mid(self):
return self._mid
@mid.setter
def mid(self, value):
self._mid = value
# -------- 关注数 --------
@property
def following(self):
return self._following
@following.setter
def following(self, value):
self._following = value
# -------- 粉丝数 --------
@property
def follower(self):
return self._follower
@follower.setter
def follower(self, value):
self._follower = value
class UpLoader(BaseUpLoader):
def __init__(self, mid=None):
"""
一个UP主类
mid:
https://space.bilibili.com/517327498 # <----- 罗老师的主页, 数字就是 `mid`
"""
super().__init__()
self._mid = mid
assert self._mid
self.get_relation_stat_json()
def get_relation_stat_json(self):
"""
粉丝数, 关注数
"""
url_relation_stat_json = URL_relation_stat_json.format(self.mid)
relation_stat_json_respon = r.get(url_relation_stat_json, headers=HEADERS)
relation_stat_dict = respon2dict(relation_stat_json_respon)["data"]
self.following = relation_stat_dict.get("following", None)
self.follower = relation_stat_dict.get("follower", None)
if __name__ == "__main__":
luo = UpLoader(517327498)
print("罗老师粉丝数:%d 关注数:%d" % (luo.follower, luo.following))