QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python9 _) a( O) I8 v% S+ h: c* Y
  2. # -*- coding: utf-8 -*-! N\" j* ^) W5 O\" P\" H- J

  3. : u: n& \* N8 ~import threading/ a9 i8 Q. n# d( v: ~; n
  4. from lxml import etree
  5. 4 D* R; X* x! i7 j) p: zimport requests
  6. 5 P8 [; [; \* Vfrom ctypes import windll
  7. ! Z' Q4 v+ K4 d% a3 X& U* F4 X& B1 P  u' S
  8. % [. A6 S: R  H+ }, L6 e6 b* X
  9. def getmidstring(html, start_str, end):
  10. / b( \5 o8 S\" e/ \! b    start = html.find(start_str)2 U; }* ?% v# b$ Z7 J
  11.     if start >= 0:- T+ C' G1 c: t$ M
  12.         start += len(start_str)
  13. / r$ Z6 E5 K  R        end = html.find(end, start)
  14. 4 Z9 U( c\" r- v1 K9 B. w        if end >= 0:4 b$ c  O# m! l: u2 G/ c. z, {
  15.             return html[start:end].strip()
  16. ' H7 J  l# V4 \$ v9 _
  17. / {/ h. Z. c- S# \: n% q8 j, z5 p
  18. 5 u6 ]8 ^7 v  N' _: Mdef getleftstring(html, end):+ N; d3 R. _  A# ]% `
  19.     end = html.find(end)- r\" |\" S( h( e0 O$ ?
  20.     if end >= 0:; X/ b  x$ Y: \7 A: c/ i5 H
  21.         return html[0:end].strip()
  22. 1 i$ ?, N2 v* N5 l& {2 P
  23. ) r5 d7 `4 f( W4 N; G, U! z1 Z+ O0 i$ S( L1 ?; Q
  24. def updata(i):9 P7 w7 V: E$ C! n; o7 M
  25.     req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)2 J; Y\" W: S/ |+ j# e
  26.     req.encoding = "utf-8"
  27. \" J3 i; {8 S. V8 b    m3u8 = getmidstring(req.text, "var now=\"", "\"")0 M( U\" o6 r' ~( |) B8 p- O

  28. - H% N* a7 G3 D6 K    html = etree.HTML(req.text)) M\" b  d5 ?5 ]6 i7 z
  29.     title = html.xpath("//meta[@name=\"description\"]/@content")[0]3 K% H- ]( s/ i3 N4 l+ r. w0 B3 y
  30.     title = getleftstring(title, ",")5 v/ D0 n2 g4 T% |+ a\" j/ k
  31.     print(title)! b' P- F; X9 M9 C8 B2 R
  32. ; D) K6 f  H1 j9 B
  33.     cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (\" @0 i' I/ p& l4 i5 w2 B
  34.         m3u8,
  35. ; H3 ~% h( R  u) m# V        r"F:\xxx",' Z4 ?7 K, F9 @9 r  P7 l
  36.         title)* l9 P- x  w4 X; n
  37.     print(cmd)
  38. ( G, ]6 L8 X1 ]9 V8 t( Z4 e4 c
  39. 6 c' W$ J1 ~1 T' O  n8 ]: c    dll = windll.LoadLibrary("Shell32.dll")
  40. / W) G1 o+ _) w9 P    print(dll.ShellExecuteW(None,9 o% d( N# R% e$ \/ V
  41.                             "open",3 f5 O+ ]. Y0 _( e; H. S
  42.                             r"D:\xxx.exe",  H: \2 ~) |; B2 F% r3 Q
  43.                             cmd, None, 1))
  44. ( ^! L* ~! e, l! W* w; Q5 H$ A1 S
  45. ) y) ?0 }  O9 H+ Y2 D\" k\" y+ P0 g5 m& Z1 k' E% t
  46. def cycle():
  47. 7 l4 F. u$ W, |8 W4 D    for i in range(40):$ K* u0 C! D/ ]3 J
  48.         updata(i)
  49. 5 H4 @6 M$ N2 S# p9 K' I& e
  50. ) l4 |$ R1 G; f: N$ D
  51. , a) N# V; w& P  W2 Z! Eif __name__ == '__main__':
  52. . o# u3 ^. X+ a- N: Z$ @    hThread = threading.Thread(target=cycle)
  53. 8 p; D1 Y% @7 j0 T  L    hThread.setDaemon(True)
  54. 6 A7 W9 n# w7 [! K; B* {# Y  S. I    hThread.start()! o# R  D/ u1 }  a; ^$ R* e7 f/ ^6 B
  55.     hThread.join()
  56. ' l% c8 s5 k3 ~( L7 o

3 L% R6 m6 e3 ^
1 K6 }$ M2 K# n' j1 i2 |/ i* d' X在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~
5 K# j4 a4 }: D% X; q) z* X0 I" j1 _5 t. }0 X, |* e5 m5 i4 H5 Q

& y* A$ J  n7 K; G- p$ n* @
转发自派生社区
Python交流群:1047602540

) W" N, S4 s  t. [: i! W: L2 h$ v3 H2 E$ d5 @( k
1 X1 d8 A  Y, e
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-7-18 06:16 , Processed in 0.388209 second(s), 50 queries .

回顶部