QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python% S2 n8 i  ^9 J5 _' I6 k
  2. # -*- coding: utf-8 -*-
  3. ! I8 Y! R$ r, D5 L! R% O* c( c1 E# \' E2 T2 P# C
  4. import threading6 q9 t\" e: K$ {% f2 n( \' K( r
  5. from lxml import etree
  6. 7 z9 v0 w. H0 X, e+ J8 Timport requests
  7. 2 g$ ~+ B+ V3 w' pfrom ctypes import windll
  8. ' Q1 l( r9 E9 |5 k5 f' s  v( m) `/ q\" b& U! W
  9. % [2 s8 b( b' h
  10. def getmidstring(html, start_str, end):6 T9 o$ Z7 V6 G$ s: r
  11.     start = html.find(start_str)
  12. 6 o5 @( F& T+ o    if start >= 0:+ b/ `8 Y! C( t: H
  13.         start += len(start_str)
  14. ) F  Z% D9 w0 I3 S# h' ~# n1 x! ?        end = html.find(end, start)% Q* \3 c3 v5 V' h4 [- f8 L' P
  15.         if end >= 0:! P' a! G1 h6 s$ Q4 g
  16.             return html[start:end].strip()- y) u0 q/ f5 q4 z4 ^
  17. 8 s# w6 O5 k! a( V! [6 a9 k% w
  18. ( [  X% O1 m9 O; o3 `4 U
  19. def getleftstring(html, end):
  20. 2 P1 c- }# d/ R; W$ P% v    end = html.find(end)
  21. 4 w- B3 @7 z3 Y( ^+ d    if end >= 0:
  22. : |2 _2 T- M% |\" I% o2 n        return html[0:end].strip()
  23. : y. q$ c- ]$ s* G1 x  Z3 x2 t8 q. M. X' @' m- K- S) _) o  ?6 z
  24. ' R+ X7 ~. O9 z7 g) @
  25. def updata(i):) F4 Z9 P$ `( U8 I% Q7 p
  26.     req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i); y* ~9 \) c7 O  S! H/ y- ]6 _
  27.     req.encoding = "utf-8"3 V; M/ l# C, Y) N9 k$ w
  28.     m3u8 = getmidstring(req.text, "var now=\"", "\"")
  29. / d9 K( e. D% t$ M$ t8 e0 p- A
  30. ( T3 I% @5 X/ m# L    html = etree.HTML(req.text)4 n7 S$ r% ^  |  E
  31.     title = html.xpath("//meta[@name=\"description\"]/@content")[0]) C7 u. X0 M6 {; o) J# O) t
  32.     title = getleftstring(title, ",")! |8 e$ \$ K) F& Q# {1 d
  33.     print(title)8 g; i- R7 S8 w3 {
  34. , i: @& y\" g2 h) J9 y! t
  35.     cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  36. 5 E6 T6 [9 c& s        m3u8,- c& |' i4 a; ]$ ]6 D; @
  37.         r"F:\xxx",
  38. 0 D: l, b! n6 {1 j\" A* o, ~        title)
  39. 2 {7 q$ ~  B' d2 s6 z4 R    print(cmd)
  40. 2 h, ^8 |# y/ M9 p
  41. - t8 p8 r( Z4 B0 G    dll = windll.LoadLibrary("Shell32.dll")
  42. 8 B3 a1 H' \, j  c    print(dll.ShellExecuteW(None,# W. Z, Y6 C/ s  M
  43.                             "open",
  44. 6 i! x9 L. l+ q; @( |. |* W1 @                            r"D:\xxx.exe",
  45. - o) `, M* h' `. K# ?  a; L                            cmd, None, 1))
  46. ( ]- X4 G. z9 F0 X/ C1 k3 I
  47. - [9 A% ~3 K' B( F/ n9 l$ J; C7 j% n
  48. def cycle():& N4 z, y! I  Z/ C$ w
  49.     for i in range(40):
  50. 8 t/ G6 K3 @/ }& Z$ M' z3 _3 ~        updata(i)) k: _! S+ K+ r8 V+ ~
  51. ( P3 K* [; L/ v: u- ~

  52. ( m% N\" M! ?  q  {6 c* d\" T9 oif __name__ == '__main__':
  53.   ?& J* C7 G) y\" h/ }7 a    hThread = threading.Thread(target=cycle)* S4 m* ?) O! u% l) |7 O/ P
  54.     hThread.setDaemon(True)
  55. 5 n& z! }- ^- }    hThread.start()
  56. ; v1 Z! M( V8 m1 P) c    hThread.join(). @7 E1 w: D5 m4 e( p( a1 ~

5 T  ~+ w  `9 e$ k4 @4 g8 w' N; a+ R; }/ A' n
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~+ H4 J) p! B: K' m' ^8 G" }' T
' m7 J  S5 J& x. N# d
+ O, y5 Y. ~" x5 p; l( z" [
转发自派生社区
Python交流群:1047602540
% a/ M4 n, u& D
3 b/ u- }7 x& e2 P. m* I0 ^3 A
2 P& E: H- h6 f5 m' q! O4 l6 G0 h1 @
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, 2026-4-18 12:17 , Processed in 0.335179 second(s), 50 queries .

回顶部