|
@@ -4,6 +4,10 @@ import json
|
|
import numpy as np
|
|
import numpy as np
|
|
import logging
|
|
import logging
|
|
from concurrent_log import ConcurrentTimedRotatingFileHandler
|
|
from concurrent_log import ConcurrentTimedRotatingFileHandler
|
|
|
|
+from config.url import get_none_water_mark_url
|
|
|
|
+import requests
|
|
|
|
+import pandas as pd
|
|
|
|
+import base64
|
|
|
|
|
|
|
|
|
|
# 创建数据库连接引擎
|
|
# 创建数据库连接引擎
|
|
@@ -56,3 +60,32 @@ def get_logger(log_file_name, log_name):
|
|
logger.addHandler(log_handler)
|
|
logger.addHandler(log_handler)
|
|
logger.setLevel(logging.DEBUG) # 日志打印级别
|
|
logger.setLevel(logging.DEBUG) # 日志打印级别
|
|
return logger
|
|
return logger
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# 获取头条无水印有时效性的链接
|
|
|
|
+def get_toutiao_none_water_mark_and_time_efficient_url(vid):
|
|
|
|
+ """
|
|
|
|
+ 依据 vid,得到无水印,有时效性的链接
|
|
|
|
+ :return:
|
|
|
|
+ """
|
|
|
|
+ request_path = get_none_water_mark_url + str(vid)
|
|
|
|
+ request = requests.get(request_path)
|
|
|
|
+ response_data = json.loads(request.text)
|
|
|
|
+ if response_data.get('message') == 'success' and response_data.get('data') and response_data.get('data').get('video_list'):
|
|
|
|
+ video_df = pd.DataFrame()
|
|
|
|
+ for k, v in response_data.get('data').get('video_list').items():
|
|
|
|
+ single_video_df = pd.DataFrame([v])
|
|
|
|
+ video_df = video_df.append(single_video_df)
|
|
|
|
+
|
|
|
|
+ video_df.sort_values(by='size', ascending=True, inplace=True) # 获取分辨率最高的素材
|
|
|
|
+ main_url = video_df['main_url'].values[-1]
|
|
|
|
+ main_url_decode = base64.b64decode(main_url)
|
|
|
|
+ main_url_decode = str(main_url_decode, encoding='utf-8') # bytes to str
|
|
|
|
+ return main_url_decode
|
|
|
|
+ else:
|
|
|
|
+ return None
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
+ r = get_toutiao_none_water_mark_and_time_efficient_url('v02033290000budu3753giguv9qli6bg')
|
|
|
|
+ print(r)
|