QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2927|回复: 0
打印 上一主题 下一主题

Python-追剧下载视频

[复制链接]
字体大小: 正常 放大
檀俾九        

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. $ S* P+ }1 Z. Z; _# -*- coding: utf-8 -*-
  3. 5 p2 ?3 k\" W\" x# K! j8 M% l\" W$ m\" ?# p# q( m# _
  4. import threading+ I5 B7 Z/ W6 H2 V
  5. from lxml import etree
  6. 8 G- ]$ ?, b( x+ D! simport requests+ S1 q! N% n$ ?+ |% k
  7. from ctypes import windll4 A5 Z( s* R+ F4 f, f0 W+ D3 A

  8. 6 [# |4 _4 y0 X& a3 c3 I: \3 @8 a! [8 x; m% z4 r5 A
  9. def getmidstring(html, start_str, end):) G0 d/ d% i8 j. P7 w
  10.     start = html.find(start_str)( z6 U: P8 y0 V# ~( C/ V* Q
  11.     if start >= 0:
  12. 0 I/ F7 R7 C9 O  l* L/ H. }        start += len(start_str)
  13. ) A) m! q. L! x! W! m: ?. |, G        end = html.find(end, start)* f) ?# [/ j8 V% Y3 N) i4 J/ C
  14.         if end >= 0:
  15. - F\" U3 u% ^/ Q, E) C( \            return html[start:end].strip()
  16. 7 m) t\" U* d7 E( P' A* A, K+ q. H/ V% b- e- `, }/ i$ t( z9 E

  17. / P8 A2 m9 R2 @/ D# ~* n2 t7 B& K  Sdef getleftstring(html, end):* {. d& @\" o0 }. X2 \7 B& y. Z- Q
  18.     end = html.find(end)4 A$ V3 g9 C3 y\" o+ x; y
  19.     if end >= 0:
  20. ; A5 @( {  X9 {/ V        return html[0:end].strip()
  21. * T! `+ J- j) ^  H7 b3 L/ T# s7 d( y; {* [* S' k

  22. - `& Y% n6 \* V  l7 b  kdef updata(i):
  23. 9 q7 L4 x$ \( ]  K7 m% n    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)
  24. # I# a' w9 Q- D! i7 S( w4 A    req.encoding = "utf-8"$ [! n1 L' g$ I, d
  25.     m3u8 = getmidstring(req.text, "var now=\"", "\""). x0 v2 X- U  i1 H7 N6 S1 i

  26. \" V- m- U6 a+ N\" ^9 z) w4 {8 t. v    html = etree.HTML(req.text)4 _; H* }- Q- E
  27.     title = html.xpath("//meta[@name=\"description\"]/@content")[0]
  28. ' o4 y0 g+ l% e0 |% r& Y    title = getleftstring(title, ",")
  29. ' c9 S, w8 O7 N\" ]4 R1 D& u    print(title)# W+ t) R6 D/ Z4 U\" P- F( p

  30. - I+ {\" V0 z. h  L7 U( i4 N9 ]    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (+ w% u2 q: `, u. N6 a% x
  31.         m3u8,
  32. / L1 \6 k! B\" X( _/ R        r"F:\xxx",* v) C* V8 j; b. \4 F0 z
  33.         title). u7 F& k' M\" `6 m7 C1 o
  34.     print(cmd)
  35. 8 P7 G; ~( ~+ R; ]) D
  36. * i/ v, ^$ _  f    dll = windll.LoadLibrary("Shell32.dll")4 g7 J\" n+ L! X; f3 B5 p- v
  37.     print(dll.ShellExecuteW(None,
  38. . l- D! G! q: ^+ J2 |+ X                            "open",
  39. \" B& q* V4 O6 {2 \                            r"D:\xxx.exe",
  40. 2 ^2 f8 x! u8 U/ y* P3 k- B! E8 ~                            cmd, None, 1))
  41. 6 h5 A8 H& K6 s2 n/ Z+ p& R3 }
  42. 2 x: T. }% O7 C
  43. : O$ ^  T! }3 tdef cycle():- P, a& {* ^& f% l- h0 B7 C
  44.     for i in range(40):0 M\" ]- |, |# y. T
  45.         updata(i)
  46. ; |: z5 ~7 S% n, L& E5 w8 N  c, A% N* S8 K: p# I5 Q0 g
  47. , V- [) \( J( D\" T7 D5 R\" d
  48. if __name__ == '__main__':
  49. ( F\" o1 k4 |# o# o  C3 g- l: Q    hThread = threading.Thread(target=cycle)
  50. $ d' O# M% A. Q\" R    hThread.setDaemon(True)! q5 V6 Z\" x( b- q1 W0 x0 t
  51.     hThread.start()
  52. - `. S5 h4 _1 B/ B' i: e) P    hThread.join()
  53. & V3 S. g9 B9 u5 R# G6 I
" D& g% y3 g% r. |) N$ \  ~; O0 W
, V, M  K7 ?# `' ?8 }
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~
9 i  z, e) j3 [, H0 ~( F' u4 e# H$ G
' g' Y: k5 b( u0 Q8 y4 W% w* E% b: v
转发自派生社区
Python交流群:1047602540

3 ?. b; y, h& f2 Y: I/ Q" t6 F1 Z9 M6 U
+ l0 J& m; R. c0 u9 y/ }/ `
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-9-17 02:19 , Processed in 0.380135 second(s), 50 queries .

回顶部