QQ登录

只需要一步,快速开始

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

Python-追剧下载视频

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-19 10:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  1. #!/usr/bin/python
  2. * S. `& o( l0 [# F8 @- N% e# -*- coding: utf-8 -*-: N5 }  _* I  H# ^+ m0 Z/ U( z4 s

  3. ' N0 c) P+ V6 \/ Q* S2 s' Aimport threading. d2 ^' A4 w/ I. N) F0 x
  4. from lxml import etree
  5. + }$ U: }9 L( P: Y+ t1 w\" uimport requests; s\" n! C  t& j, b6 e6 V
  6. from ctypes import windll
  7. / Q1 R! v! {! I* Q
  8. & ^% |/ a6 O& C  Q& f, c8 A' |- h7 |$ d
  9. def getmidstring(html, start_str, end):3 I, d! M/ F4 h5 E7 C! \# H
  10.     start = html.find(start_str)& D4 ]) D* ^3 V
  11.     if start >= 0:
  12. \" H. Q; }+ X3 u/ G; Y5 ?1 ~3 R        start += len(start_str)4 _! a8 [5 G5 M* f0 _! m0 T% V
  13.         end = html.find(end, start)
  14. 4 v, K$ {) R' ?6 A8 W        if end >= 0:- t8 {2 ]9 F: u+ D+ I$ w6 @
  15.             return html[start:end].strip()
  16. ; T\" t1 a+ Z: b
  17. # P1 U- o4 |6 W1 z\" X* W4 R! J% y. U6 T
  18. def getleftstring(html, end):  c! D1 d. z: [, D  g, ?
  19.     end = html.find(end)/ x2 z6 Z4 j/ u  Y/ p# e
  20.     if end >= 0:
  21. 6 g\" J1 W; h& C! t: m6 Z6 r        return html[0:end].strip()6 @* e0 h; ^+ f, O
  22. $ I$ O: `3 ~( t- U0 e

  23. $ l3 ~+ i2 _6 l0 adef updata(i):3 Q; s( x# c3 X* b+ L0 x9 |
  24.     req = requests.get("https://www.xxx.com/play/xxx-2-%s.html" % i)
  25. - i, ?# `+ F+ i( s9 k5 t    req.encoding = "utf-8": d9 b& \0 J9 ], P
  26.     m3u8 = getmidstring(req.text, "var now=\"", "\"")
  27. 0 G4 [1 O+ @9 A) }# y
  28. * a' n$ _# z3 i2 V8 h8 d: l3 Z- e    html = etree.HTML(req.text)
  29. ' Q. o$ _, G3 l  Z0 |    title = html.xpath("//meta[@name=\"description\"]/@content")[0]
  30. ! U8 e6 Y  D  a* J$ [. v+ p) C    title = getleftstring(title, ",")
  31. 4 m\" D$ f7 g; @9 U* h% t\" M6 u    print(title), c, E* Z0 E0 J8 t& Q+ Y( k

  32. & f- S1 B- ?% A    cmd = "\"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone" % (
  33. ; G  P7 m5 W8 s, f        m3u8,
  34. 3 F, V5 v( Y5 a9 x; y- Z$ m- A        r"F:\xxx",; O$ J+ M0 t\" @
  35.         title)
  36. * l0 J$ I# j2 g, ~) G    print(cmd)/ `1 w\" ?: o8 |+ E2 {  g\" m; R

  37. ; l. ~, J0 b( T( C+ ?& I    dll = windll.LoadLibrary("Shell32.dll")4 u8 t- H2 q9 F6 x
  38.     print(dll.ShellExecuteW(None,2 L7 m( b1 m& d7 L3 G) [+ c. {
  39.                             "open",
  40. - v4 s+ ]- R# K                            r"D:\xxx.exe",( g5 x/ b& P, K8 c& s, o* a& M$ P
  41.                             cmd, None, 1)): r\" S6 o4 I! M

  42. ) x4 E( `0 C  c- T
  43. 0 A+ |+ i* h* R& k! }def cycle():* `: _9 ]8 p  y/ q: m
  44.     for i in range(40):& T3 V; p\" C# C7 }* m5 H, a
  45.         updata(i)& d% U! u4 u( ]! H, j  v5 ~

  46. ) n. D8 k$ _0 s$ i
  47. ( l, X: l1 `2 H. \if __name__ == '__main__':; P5 q, X7 Y4 w
  48.     hThread = threading.Thread(target=cycle)
  49. $ O; K3 ]; k0 W2 z  u9 D    hThread.setDaemon(True). T* E: K8 d1 L' S5 S1 B
  50.     hThread.start()
  51. $ [0 Y5 C& \1 c- c5 c6 {7 B    hThread.join()4 Y( g: b! V( F  F$ K$ S! S
, I  X5 O' z- J
6 k  m) \% C2 `6 e
在线追剧又卡又慢!还不方便,写个Python脚本自动帮我缓存下~
3 D* S4 z' I1 ~/ K" y2 S0 h) Q" Q+ V6 {' A

- k& O: W- O( A: T
转发自派生社区
Python交流群:1047602540
( M! D' v( X5 |1 V1 N
, B( A4 z% [7 [" R# k# ?

3 Y; w4 ~/ Z/ `% r  e) S- @
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-9-2 02:43 , Processed in 0.714175 second(s), 49 queries .

回顶部