-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.py
94 lines (71 loc) · 2.17 KB
/
main.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import threading
import time
from flask import Flask, request, jsonify, render_template
from loguru import logger
import config
import keep_cookie
# # 保持微博cookie有效
# x = keep_cookie.Weibo()
# x.start()
config.DOUYIN_OBJ.open_chrome()
logger.warning(f'Please login Weibo at {config.HOST_URL}weibo after web server launched')
app = Flask(__name__)
@app.route('/weibo')
def weibo_login():
try:
qr_code = config.WB_OBJ.login() # 登录并初始化一个chrome
html = render_template('weibo_qr_code.html', img=qr_code)
return html
except Exception as e:
return str(e)
@app.route('/api', methods=['POST'])
def api():
platform = request.form['platform']
url = request.form['url']
# json 返回数据
data = {
"platform": platform,
"status": "",
"msg": "",
"profile": None
}
if platform == 'weibo':
data['platform'] = 'weibo'
reply = config.WB_OBJ.scrape(url) # 爬取数据
if isinstance(reply, dict):
data['status'] = True
data['msg'] = 'success'
data['profile'] = reply
else:
data['status'] = False
data['msg'] = reply
elif platform == 'tiktok':
data['platform'] = 'tiktok'
reply = config.DOUYIN_OBJ.scrape(url) # 爬取数据
if isinstance(reply, dict):
data['status'] = True
data['msg'] = 'success'
data['msg'] = reply
else:
data['status'] = False
data['msg'] = reply
elif platform == 'redbook':
data['platform'] = 'redbook'
reply = config.REDBOOK_OBJ.scrape(url) # 爬取数据
if isinstance(reply, dict):
data['status'] = True
data['msg'] = 'success'
data['profile'] = reply
else:
data['status'] = False
data['msg'] = reply
else:
data['status'] = "err"
data['msg'] = "unknown platform"
return jsonify(data)
if __name__ == '__main__':
# # 保持微博cookie有效
# x = keep_cookie.Weibo()
# x.start()
app.run(debug=False, host="0.0.0.0", use_reloader=False)
pass