demo.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2022/11/23
  4. import time
  5. import requests
  6. from main.common import Common
  7. from main.feishu_lib import Feishu
  8. class Demo:
  9. @classmethod
  10. def get_sheet(cls, log_type, crawler, sheetid):
  11. sheet = Feishu.get_values_batch(log_type, crawler, sheetid)
  12. print(sheet)
  13. @classmethod
  14. def publish_time(cls):
  15. time1 = '发布时间:2022年11月20日'
  16. time2 = time1.replace('发布时间:', '').replace('年', '/').replace('月', '/').replace('日', '')
  17. print(time2)
  18. time3 = int(time.mktime(time.strptime(time2, "%Y/%m/%d")))
  19. print(time3)
  20. @classmethod
  21. def get_video_url(cls, log_type, video_id):
  22. url = 'https://haokan.hao123.com/v?'
  23. params = {
  24. 'vid': video_id,
  25. '_format': 'json',
  26. }
  27. headers = {
  28. 'Accept': '*/*',
  29. 'Accept-Encoding': 'gzip, deflate, br',
  30. 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
  31. 'Cache-Control': 'no-cache',
  32. 'Connection': 'keep-alive',
  33. 'Content-Type': 'application/x-www-form-urlencoded',
  34. 'Cookie': 'PC_TAB_LOG=video_details_page; COMMON_LID=b0be69dd9fcae328d06935bd40f615cd; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1669029953; hkpcvideolandquery=%u82CF%u5DDE%u6700%u5927%u7684%u4E8C%u624B%u8F66%u8D85%u5E02%uFF0C%u8F6C%u4E00%u8F6C%u91CC%u8FB9%u8C6A%u8F66%u592A%u591A%u4E86%uFF0C%u4EF7%u683C%u66F4%u8BA9%u6211%u5403%u60CA%uFF01; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1669875695; ariaDefaultTheme=undefined; reptileData=%7B%22data%22%3A%22636c55e0319da5169a60acec4a264a35c10862f8abfe2f2cc32c55eb6b0ab4de0efdfa115ea522d6d4d361dea07feae2831d3e2c16ed6b051c611ffe5aded6c9f852501759497b9fbd2132a2160e1e40e5845b41f78121ddcc3288bd077ae4e8%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%22f6752aac%22%7D; RT="z=1&dm=hao123.com&si=uc0q7wnm4w&ss=lb4otu71&sl=j&tt=av0&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=1rdw&cl=7v6c"',
  35. 'Pragma': 'no-cache',
  36. 'Referer': 'https://haokan.hao123.com/v?vid=10623278258033022286&pd=pc&context=',
  37. 'sec-ch-ua': '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"',
  38. 'sec-ch-ua-mobile': '?0',
  39. 'sec-ch-ua-platform': '"macOS"',
  40. 'Sec-Fetch-Dest': 'empty',
  41. 'Sec-Fetch-Mode': 'cors',
  42. 'Sec-Fetch-Site': 'same-origin',
  43. 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62',
  44. }
  45. r = requests.get(url=url, headers=headers, params=params)
  46. if r.status_code != 200:
  47. Common.logger(log_type).info(f'get_video_url_response:{r.text}')
  48. elif r.json()['errno'] != 0 or len(r.json()['data']) == 0:
  49. Common.logger(log_type).info(f'get_video_url_response:{r.json()}')
  50. else:
  51. clarityUrl = r.json()['data']['apiData']['curVideoMeta']['clarityUrl']
  52. video_url = r.json()['data']['apiData']['curVideoMeta']['clarityUrl'][len(clarityUrl)-1]['url']
  53. return video_url
  54. if __name__ == '__main__':
  55. # Demo.get_sheet('demo', 'haokan', '7f05d8')
  56. # Demo.publish_time()
  57. Demo.get_video_url('demo', '10377041690614321392')
  58. pass