QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. 7 ~7 U8 |3 `$ t# -*- coding: utf-8 -*-4 t) S  M: x9 e

  3.   t- ?9 ]- R- I& @2 b, h0 _import threading2 [0 [1 n8 H- S3 D
  4. from lxml import etree
  5. . p' T7 t- C+ W$ y+ z4 E; B: jimport requests
  6. ( E( P/ n( R2 S) x7 C  n9 K4 Bfrom ctypes import windll
  7. 5 `. U9 A7 C9 l* Q, [. f6 x1 U
  8. ' V- ?\" I4 T; J0 J  @/ n/ ~, T* Z5 s3 P+ L0 s
  9. def getmidstring(html, start_str, end):
  10. 6 j5 n* W' @% D3 X1 k' t, d; Y    start = html.find(start_str)1 G7 r- `% W# }
  11.     if start >= 0:
  12. 9 C& }8 e3 q, f, x7 f' l3 ?; Q  U        start += len(start_str)
  13. ; q: f* i5 I; v' q; ^        end = html.find(end, start)& m+ F0 J. b9 O0 _0 u  e( z
  14.         if end >= 0:
  15. + a2 j4 D- z7 o/ d0 j' k4 w6 z            return html[start:end].strip()
  16. 9 X+ N# [, k/ L2 `, U\" g9 I. N6 H# |# q  y1 [7 i& S' B* O

  17. ; S, g. H; Q4 m1 o5 Bdef getleftstring(html, end):$ T- H4 P5 \; K( A+ t
  18.     end = html.find(end)
  19. % _- [( n: C; B/ ]) c+ v    if end >= 0:0 e$ N. l% [1 k* v6 f: k
  20.         return html[0:end].strip()
  21. 0 j. a7 d$ d; @5 x) l. i( g+ f- {! H9 A9 f1 B  U; Q3 z% S/ X( m* s7 U4 n
  22. + a: I5 k4 C, n* l3 }' X
  23. def updata(i):
  24. ) {9 X/ w( i. T3 ]9 g5 C    req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)
  25. * n9 a1 U# l- r) q    req.encoding = "utf-8"; F! j* k\" n+ q7 n5 \$ k- h
  26.     m3u8 = getmidstring(req.text, "var now=\"", "\"")7 I! n/ A- `2 m& v1 V; b3 \% B
  27. , @& V* O/ w/ ~# \) b4 p
  28.     html = etree.HTML(req.text)
  29. ( a+ h, V4 G( Z* W/ \\" y9 D9 n    title = html.xpath("//meta[@name=\"description\"]/@content")[0]
  30. ( I- t$ Y, {) n4 J    title = getleftstring(title, ",")) K9 j+ y4 e4 ]$ T: d
  31.     print(title), G; Y( |% n4 a% ]8 L# _* [8 g

  32.   b# B# k) M& A( R, T' D+ a    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  33.   H2 Q\" ]\" F0 W, l/ M$ @        m3u8,
  34. + o. ^& |/ a. F8 `\" D        r"F:\xxx",& r& ]6 z2 o& s8 E
  35.         title)
  36. ; V$ O- n1 G' m* A5 ]    print(cmd)4 T% B6 i5 \% s
  37. / E6 {; s, \& _! h$ j( [
  38.     dll = windll.LoadLibrary("Shell32.dll")
  39. 7 [; M8 ?4 E' J# g. ^    print(dll.ShellExecuteW(None,9 T2 d( P& w( X
  40.                             "open",
  41. 7 j. ]8 K3 Q( b$ o\" V                            r"D:\xxx.exe",
  42. # w0 C6 i. }( X0 e! y                            cmd, None, 1))
  43. ) O4 X3 f2 \+ v( g5 U# H, b0 v0 b
  44. 8 S, @. b0 j' j# R- G1 J3 r
  45. % y0 h, X' z6 m  e) ddef cycle():1 Y3 t3 |, P: o- E, x  T) Z\" o2 h/ s
  46.     for i in range(40):) a# I1 M3 ^# q5 K6 t* X
  47.         updata(i). Q. [6 A  n) j: u' x* O7 M& k

  48. 6 S# ]0 T* L  L# n' i& c1 I* Y. C* P; j/ K: I0 A
  49. if __name__ == '__main__':
  50. ; m) p  H- ]; F) n) C    hThread = threading.Thread(target=cycle)/ K, P/ [% Z\" @* Y2 f
  51.     hThread.setDaemon(True)
  52. 2 B1 J3 W- _5 I    hThread.start()
  53. . p6 B# H% F+ v0 M5 S    hThread.join()
  54. 9 U' u; u% o: t8 \, G( T9 r

+ k) M. Z1 \# i! X( c+ c7 r) d& ]( f) @0 N- u6 r! y
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~( a% m2 _" ?" e& Y! H1 z
; i  t6 e# |; J3 C$ W

, D8 J5 I& w4 ?, R. P
转发自派生社区
Python交流群:1047602540
5 \! W+ k  p: p; m0 ]: Z

( @2 ^  B5 P3 a& M2 H/ T2 k6 \( |+ ]: J% ~- X5 Z% J" w1 v
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-19 07:14 , Processed in 0.413475 second(s), 50 queries .

回顶部