|
@@ -5,12 +5,33 @@ import json
|
|
|
import os
|
|
|
import sys
|
|
|
import time
|
|
|
+# import atomacos
|
|
|
+from appium import webdriver
|
|
|
+from selenium.webdriver.common.by import By
|
|
|
sys.path.append(os.getcwd())
|
|
|
from crawler_shipinhao.main.common import Common
|
|
|
+from crawler_shipinhao.main.feishu_lib import Feishu
|
|
|
# from main.common import Common
|
|
|
|
|
|
|
|
|
class GetUrl:
|
|
|
+ @classmethod
|
|
|
+ def click_video(cls, log_type, video_title):
|
|
|
+ Common.logger(log_type).info('启动"微信"')
|
|
|
+ desired_caps = {'app': r"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"}
|
|
|
+ driver = webdriver.Remote(
|
|
|
+ command_executor='http://127.0.0.1:4723',
|
|
|
+ desired_capabilities=desired_caps)
|
|
|
+ driver.implicitly_wait(10)
|
|
|
+
|
|
|
+ Common.logger(log_type).info('点击"爬虫群"')
|
|
|
+ driver.find_element(By.NAME, '爬虫群').click()
|
|
|
+
|
|
|
+ Common.logger(log_type).info('点击视频:{}', video_title)
|
|
|
+ driver.find_element(By.NAME, video_title).click()
|
|
|
+ time.sleep(5)
|
|
|
+ driver.quit()
|
|
|
+
|
|
|
@classmethod
|
|
|
def get_url(cls, log_type):
|
|
|
try:
|
|
@@ -45,13 +66,14 @@ class GetUrl:
|
|
|
for text in contents:
|
|
|
if text["host"] == "finder.video.qq.com" and text["path"] == "/251/20302/stodownload":
|
|
|
video_url_list.append(text)
|
|
|
- elif text["host"] == "finder.video.qq.com" and text["path"] == "/251/20350/stodownload":
|
|
|
+ elif text["host"] == "finder.video.qq.com" and text["path"] == "/251/20304/stodownload":
|
|
|
cover_url_list.append(text)
|
|
|
|
|
|
video_url = video_url_list[0]['host']+video_url_list[0]['path']+'?'+video_url_list[0]['query']
|
|
|
cover_url = cover_url_list[0]['host']+cover_url_list[0]['path']+'?'+cover_url_list[0]['query']
|
|
|
+ head_url = cover_url
|
|
|
|
|
|
- return video_url, cover_url
|
|
|
+ return video_url, cover_url, head_url
|
|
|
else:
|
|
|
Common.logger(log_type).info("未找到 url,10s后重新获取")
|
|
|
time.sleep(10)
|
|
@@ -61,6 +83,21 @@ class GetUrl:
|
|
|
Common.logger(log_type).exception("get_url异常:{}", e)
|
|
|
return None
|
|
|
|
|
|
+ @classmethod
|
|
|
+ def write_url(cls, log_type):
|
|
|
+ while True:
|
|
|
+ if Feishu.get_values_batch(log_type, 'shipinhao', 'FSDlBy')[1][11] is None:
|
|
|
+ Common.logger(log_type).info('开始点击分享的视频')
|
|
|
+ cls.click_video(log_type, Feishu.get_values_batch(log_type, 'shipinhao', 'FSDlBy')[1][2])
|
|
|
+ time.sleep(60)
|
|
|
+ Common.logger(log_type).info('获取视频头像/封面/播放地址')
|
|
|
+ urls = cls.get_url(log_type)
|
|
|
+ Feishu.update_values(log_type, 'shipinhao', '', 'J2:L2', [[urls[2], urls[1], urls[0]]])
|
|
|
+ Common.logger(log_type).info('视频地址信息写入飞书成功\n')
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ break
|
|
|
+
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
GetUrl.get_url('recommend')
|